IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 18, 2010, 3:59:38 PM (16 years ago)
Author:
Paul Price
Message:

Being more careful to free unused memory, to keep memory footprint as low as possible.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ppStack/src/ppStackCleanup.c

    r27329 r27343  
    7171    }
    7272
     73    if (!ppStackFilesIterateUp(config)) {
     74        psError(psErrorCodeLast(), false, "Unable to close files.");
     75        return false;
     76    }
     77    ppStackFileActivation(config, PPSTACK_FILES_STACK, false);
     78    ppStackFileActivation(config, PPSTACK_FILES_PHOT, false);
     79
     80    // Ensure files are freed
     81    {
     82        options->outRO->data_exists = false;
     83        options->outRO->parent->data_exists = false;
     84        options->outRO->parent->parent->data_exists = false;
     85        psFree(options->outRO);
     86        options->outRO = NULL;
     87
     88        pmFPAview *view = pmFPAviewAlloc(0);// Pointer into FPA hierarchy
     89        view->chip = view->cell = 0;        // pmFPAviewFreeData doesn't want to deal with readouts
     90        pmFPAfile *jpeg1 = pmFPAfileSelectSingle(config->files, "PPSTACK.OUTPUT.JPEG1", 0); // JPEG file
     91        pmFPAviewFreeData(view, jpeg1);
     92        pmFPAfile *jpeg2 = pmFPAfileSelectSingle(config->files, "PPSTACK.OUTPUT.JPEG2", 0); // JPEG file
     93        pmFPAviewFreeData(view, jpeg2);
     94        pmFPAfile *phot = NULL;         // Photometry file
     95        if (options->photometry) {
     96            phot = pmFPAfileSelectSingle(config->files, "PSPHOT.INPUT", 0); // Photometry file
     97            pmFPAviewFreeData(view, phot);
     98        }
     99
     100        view->readout = 0;
     101        pmReadout *ro1 = pmFPAviewThisReadout(view, jpeg1->fpa); // JPEG readout
     102        ro1->data_exists = ro1->parent->data_exists = ro1->parent->parent->data_exists = false;
     103        pmReadout *ro2 = pmFPAviewThisReadout(view, jpeg2->fpa); // JPEG readout
     104        ro2->data_exists = ro2->parent->data_exists = ro2->parent->parent->data_exists = false;
     105        if (options->photometry) {
     106            pmReadout *ro = pmFPAviewThisReadout(view, phot->fpa); // Photometry readout
     107            ro->data_exists = ro->parent->data_exists = ro->parent->parent->data_exists = false;
     108        }
     109        psFree(view);
     110    }
     111
    73112    return true;
    74113}
Note: See TracChangeset for help on using the changeset viewer.