Changeset e4b6b7d3
- Timestamp:
- Dec 11, 2020, 7:53:45 AM (4 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, enum, forall-pointer-decay, jacob/cs343-translation, master, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 73a3be5
- Parents:
- 97aca3df
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/heap.cfa
r97aca3df re4b6b7d3 10 10 // Created On : Tue Dec 19 21:58:35 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Mon Sep 7 22:17:46202013 // Update Count : 9 5712 // Last Modified On : Fri Dec 11 07:36:34 2020 13 // Update Count : 970 14 14 // 15 15 … … 464 464 } // headers 465 465 466 #ifdef __CFA_DEBUG__ 467 #if __SIZEOF_POINTER__ == 4 468 #define MASK 0xdeadbeef 469 #else 470 #define MASK 0xdeadbeefdeadbeef 471 #endif 472 #define STRIDE size_t 473 474 static void * Memset( void * addr, STRIDE size ) { // debug only 475 if ( size % sizeof(STRIDE) != 0 ) abort( "Memset() : internal error, size %zd not multiple of %zd.", size, sizeof(STRIDE) ); 476 if ( (STRIDE)addr % sizeof(STRIDE) != 0 ) abort( "Memset() : internal error, addr %p not multiple of %zd.", addr, sizeof(STRIDE) ); 477 478 STRIDE * end = (STRIDE *)addr + size / sizeof(STRIDE); 479 for ( STRIDE * p = (STRIDE *)addr; p < end; p += 1 ) *p = MASK; 480 return addr; 481 } // Memset 482 #endif // __CFA_DEBUG__ 483 466 484 #define NO_MEMORY_MSG "insufficient heap memory available for allocating %zd new bytes." 467 485 … … 483 501 #ifdef __CFA_DEBUG__ 484 502 // Set new memory to garbage so subsequent uninitialized usages might fail. 485 memset( (char *)heapEnd + heapRemaining, '\377', increase ); 503 //memset( (char *)heapEnd + heapRemaining, '\377', increase ); 504 Memset( (char *)heapEnd + heapRemaining, increase ); 486 505 #endif // __CFA_DEBUG__ 487 506 rem = heapRemaining + increase - size; … … 557 576 #ifdef __CFA_DEBUG__ 558 577 // Set new memory to garbage so subsequent uninitialized usages might fail. 559 memset( block, '\377', tsize ); 578 //memset( block, '\377', tsize ); 579 Memset( block, tsize ); 560 580 #endif // __CFA_DEBUG__ 561 581 block->header.kind.real.blockSize = tsize; // storage size for munmap … … 606 626 #ifdef __CFA_DEBUG__ 607 627 // Set free memory to garbage so subsequent usages might fail. 608 memset( ((HeapManager.Storage *)header)->data, '\377', freeElem->blockSize - sizeof( HeapManager.Storage ) ); 628 //memset( ((HeapManager.Storage *)header)->data, '\377', freeElem->blockSize - sizeof( HeapManager.Storage ) ); 629 Memset( ((HeapManager.Storage *)header)->data, freeElem->blockSize - sizeof( HeapManager.Storage ) ); 609 630 #endif // __CFA_DEBUG__ 610 631 … … 935 956 header->kind.real.size = size; // reset allocation size 936 957 if ( unlikely( ozfill ) && size > osize ) { // previous request zero fill and larger ? 937 memset( (char *)oaddr + osize, (int)'\0', size - osize ); // initialize added storage958 memset( (char *)oaddr + osize, '\0', size - osize ); // initialize added storage 938 959 } // if 939 960 return oaddr; … … 960 981 header->kind.real.blockSize |= 2; // mark new request as zero filled 961 982 if ( size > osize ) { // previous request larger ? 962 memset( (char *)naddr + osize, (int)'\0', size - osize ); // initialize added storage983 memset( (char *)naddr + osize, '\0', size - osize ); // initialize added storage 963 984 } // if 964 985 } // if … … 1327 1348 header->kind.real.blockSize |= 2; // mark new request as zero filled 1328 1349 if ( size > osize ) { // previous request larger ? 1329 memset( (char *)naddr + osize, (int)'\0', size - osize ); // initialize added storage1350 memset( (char *)naddr + osize, '\0', size - osize ); // initialize added storage 1330 1351 } // if 1331 1352 } // if
Note: See TracChangeset
for help on using the changeset viewer.