Changeset 13fece5
- Timestamp:
- Dec 16, 2020, 1:42:55 PM (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:
- 3e5dd913
- Parents:
- 54eb1bb3
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/heap.cfa
r54eb1bb3 r13fece5 10 10 // Created On : Tue Dec 19 21:58:35 2017 11 11 // Last Modified By : Peter A. Buhr 12 // Last Modified On : Tue Dec 15 21:37:54202013 // Update Count : 10 1312 // Last Modified On : Wed Dec 16 12:28:25 2020 13 // Update Count : 1023 14 14 // 15 15 … … 438 438 header = headerAddr( addr ); 439 439 440 if ( unlikely( heapEnd < addr ) ) {// mmapped ?440 if ( unlikely( addr < heapBegin || heapEnd < addr ) ) { // mmapped ? 441 441 fakeHeader( header, alignment ); 442 442 size = header->kind.real.blockSize & -3; // mmap size … … 445 445 446 446 #ifdef __CFA_DEBUG__ 447 checkHeader( addr < heapBegin, name, addr );// bad low address ?447 checkHeader( header < (HeapManager.Storage.Header *)heapBegin, name, addr ); // bad low address ? 448 448 #endif // __CFA_DEBUG__ 449 449 … … 484 484 #endif // __CFA_DEBUG__ 485 485 486 486 487 #define NO_MEMORY_MSG "insufficient heap memory available for allocating %zd new bytes." 487 488 488 #include <unistd.h>489 489 static inline void * extend( size_t size ) with( heapManager ) { 490 490 lock( extlock __cfaabi_dbg_ctx2 ); … … 511 511 #ifdef __CFA_DEBUG__ 512 512 // Set new memory to garbage so subsequent uninitialized usages might fail. 513 memset( (char *)heapEnd + heapRemaining, '\ hde', increase );513 memset( (char *)heapEnd + heapRemaining, '\xde', increase ); 514 514 //Memset( (char *)heapEnd + heapRemaining, increase ); 515 515 #endif // __CFA_DEBUG__ … … 586 586 #ifdef __CFA_DEBUG__ 587 587 // Set new memory to garbage so subsequent uninitialized usages might fail. 588 memset( block, '\ hde', tsize );588 memset( block, '\xde', tsize ); 589 589 //Memset( block, tsize ); 590 590 #endif // __CFA_DEBUG__ … … 634 634 #ifdef __CFA_DEBUG__ 635 635 // Set free memory to garbage so subsequent usages might fail. 636 memset( ((HeapManager.Storage *)header)->data, '\ hde', freeElem->blockSize - sizeof( HeapManager.Storage ) );636 memset( ((HeapManager.Storage *)header)->data, '\xde', freeElem->blockSize - sizeof( HeapManager.Storage ) ); 637 637 //Memset( ((HeapManager.Storage *)header)->data, freeElem->blockSize - sizeof( HeapManager.Storage ) ); 638 638 #endif // __CFA_DEBUG__ … … 1029 1029 } // cmemalign 1030 1030 1031 1031 1032 // Same as memalign(), but ISO/IEC 2011 C11 Section 7.22.2 states: the value of size shall be an integral multiple 1032 1033 // of alignment. This requirement is universally ignored. … … 1045 1046 return 0; 1046 1047 } // posix_memalign 1048 1047 1049 1048 1050 // Allocates size bytes and returns a pointer to the allocated memory. The memory address shall be a multiple of the
Note: See TracChangeset
for help on using the changeset viewer.