Changeset 244

Show
Ignore:
Timestamp:
04/10/08 21:39:33
Author:
ralf
Message:

some more memory leak fixes (thanks to INADA Naoki)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/SWFFile.cpp

    r243 r244  
    103103         
    104104fail: 
    105         if( data ) delete data; 
     105        if( data ) delete[] data; 
    106106        if( !_ctx && ctx ) delete ctx; 
    107107        return 0; 
     
    158158 
    159159        delete w; 
    160         delete data; 
    161         if( !_ctx && ctx ) delete ctx; 
     160        delete[] data; 
     161        if( !_ctx ) delete ctx; 
    162162        return( length+8 ); 
    163163         
    164164fail: 
    165         if( w ) delete w; 
    166         if( data ) delete data; 
    167         if( !_ctx && ctx ) delete ctx; 
     165        delete w; 
     166        delete[] data; 
     167        if( !_ctx ) delete ctx; 
    168168        return 0; 
    169169} 
     
    173173        ctx = _ctx ? _ctx : new Context; 
    174174 
    175         xmlDocPtr doc
     175        xmlDocPtr doc = 0
    176176        xmlNodePtr root; 
    177177         
     
    194194        header->writeXML( root, ctx ); 
    195195         
    196         if( !_ctx && ctx ) delete ctx; 
     196        if( !_ctx ) delete ctx; 
    197197        return doc; 
    198198         
    199199fail: 
    200         if( doc ) xmlFree( doc ); 
    201         if( !_ctx && ctx ) delete ctx; 
     200        if (doc) xmlFreeDoc(doc); 
     201        if( !_ctx ) delete ctx; 
    202202        return NULL; 
    203203} 
     
    214214        if( size ) fwrite( data, size, 1, fp ); 
    215215 
    216         if( data ) delete[] data; 
     216        if( data ) xmlFree(data); 
     217        xmlFreeDoc(doc); 
    217218        return size; 
    218219         
    219220fail: 
    220         if( data ) delete[] data
     221        if( data ) xmlFree(data)
    221222        return 0; 
    222223} 
     
    268269 
    269270        length = (header->getSize(ctx,0)/8); 
    270                  
    271         if( !_ctx && ctx ) delete ctx; 
     271 
     272        if( !_ctx ) delete ctx; 
    272273        return length+8; 
    273274         
    274275fail: 
    275         if( !_ctx && ctx ) delete ctx; 
     276        if( !_ctx ) delete ctx; 
    276277        return 0; 
    277278} 
     
    290291        root = doc->xmlRootNode; 
    291292        length = setXML( root, ctx ); 
    292                  
     293 
    293294        xmlFreeDoc( doc ); 
    294295        return length; 
  • trunk/src/SWFGlyphList.cpp

    r53 r244  
    1313 
    1414GlyphList::~GlyphList() { 
    15         if( glyphs ) delete glyphs; 
    16         if( map ) delete map; 
     15        delete[] glyphs; 
     16        delete[] map; 
    1717} 
    1818 
     
    243243 
    244244void GlyphList::allocate( int n ) { 
    245         if( map ) delete map; 
    246         if( glyphs ) delete glyphs; 
     245        delete[] map; 
     246        delete[] glyphs; 
    247247 
    248248        nGlyphs = n; 
  • trunk/src/SWFItem.cpp

    r228 r244  
    126126 
    127127Rest::~Rest() { 
    128         if( data ) delete data; 
     128        delete[] data; 
    129129} 
    130130 
     
    212212                        memcpy( data, dst, lout ); 
    213213                } 
    214                 delete dst; 
     214                delete[] dst; 
    215215                xmlFree( xmld ); 
    216216        }  
     
    223223 
    224224void Rest::setdata( unsigned char *d, int s ) { 
    225         if( data ) delete data; 
     225        delete[] data; 
    226226        data = NULL; 
    227227        size = s;