Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcfa/src/heap.cfa

    r03b87140 ra3ade94  
    12331233        // Attempt to reuse existing storage.
    12341234        HeapManager.Storage.Header * header = headerAddr( oaddr );
    1235         bool isFakeHeader = header->kind.fake.alignment & 1 == 1;       // old fake header ?
    1236         if ( unlikely ( ( isFakeHeader &&
     1235        if ( unlikely ( ( header->kind.fake.alignment & 1 == 1 &&       // old fake header ?
    12371236                                 (uintptr_t)oaddr % nalign == 0 &&                              // lucky match ?
    12381237                                 header->kind.fake.alignment <= nalign &&               // ok to leave LSB at 1
    12391238                                 nalign <= 128 )                                                                // not too much alignment storage wasted ?
    1240                         ||   ( (!isFakeHeader) &&                                                       // old real header ( aligned on libAlign ) ?
     1239                        ||   ( header->kind.fake.alignment & 1 != 1 &&          // old real header ( aligned on libAlign ) ?
    12411240                                 nalign == libAlign() ) ) ) {                                   // new alignment also on libAlign
    12421241
     
    12471246
    12481247                if ( size <= odsize && odsize <= size * 2 ) { // allow 50% wasted data storage
    1249                         if ( isFakeHeader ) {
    1250                                 headerAddr( oaddr )->kind.fake.alignment = nalign | 1; // update alignment (could be the same)
    1251                         }
     1248                        headerAddr( oaddr )->kind.fake.alignment = nalign | 1; // update alignment (could be the same)
    12521249
    12531250                        header->kind.real.blockSize &= -2;              // turn off 0 fill
     
    12901287
    12911288        // Attempt to reuse existing storage.
    1292         bool isFakeHeader = header->kind.fake.alignment & 1 == 1;       // old fake header ?
    1293         if ( unlikely ( ( isFakeHeader &&
     1289        if ( unlikely ( ( header->kind.fake.alignment & 1 == 1 &&       // old fake header ?
    12941290                                 (uintptr_t)oaddr % nalign == 0 &&                              // lucky match ?
    12951291                                 header->kind.fake.alignment <= nalign &&               // ok to leave LSB at 1
    12961292                                 nalign <= 128 )                                                                // not too much alignment storage wasted ?
    1297                         ||   ( (!isFakeHeader) &&                                                       // old real header ( aligned on libAlign ) ?
     1293                        ||   ( header->kind.fake.alignment & 1 != 1 &&          // old real header ( aligned on libAlign ) ?
    12981294                                 nalign == libAlign() ) ) ) {                                   // new alignment also on libAlign
    12991295
    1300                 if ( isFakeHeader ) {
    1301                         headerAddr( oaddr )->kind.fake.alignment = nalign | 1; // update alignment (could be the same)
    1302                 }
     1296                headerAddr( oaddr )->kind.fake.alignment = nalign | 1; // update alignment (could be the same)
    13031297                return realloc( oaddr, size );
    13041298
Note: See TracChangeset for help on using the changeset viewer.