Changeset 15334
- Timestamp:
- Jun 11, 2014, 9:50:38 PM (9 years ago)
- File:
-
- 1 edited
-
ps/trunk/source/lib/allocators/headerless.cpp (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ps/trunk/source/lib/allocators/headerless.cpp
r10799 r15334 55 55 } 56 56 57 FreedBlock(uintptr_t id, size_t size) 58 : m_magic(s_magic), m_size(size), m_id(id) 59 { 60 } 61 62 ~FreedBlock() 57 void Setup(uintptr_t id, size_t size) 58 { 59 m_magic = s_magic; 60 m_size = size; 61 m_id = id; 62 } 63 64 void Reset() 63 65 { 64 66 // clear all fields to prevent accidental reuse … … 411 413 FreedBlock* WriteTags(u8* p, size_t size) 412 414 { 413 FreedBlock* freedBlock = new(p) FreedBlock(s_headerId, size); 414 (void)new(Footer(freedBlock)) FreedBlock(s_footerId, size); 415 FreedBlock* freedBlock = (FreedBlock*)p; 416 freedBlock->Setup(s_headerId, size); 417 Footer(freedBlock)->Setup(s_footerId, size); 415 418 416 419 m_freeBlocks++; … … 431 434 432 435 FreedBlock* footer = Footer(freedBlock); 433 freedBlock-> ~FreedBlock();434 footer-> ~FreedBlock();436 freedBlock->Reset(); 437 footer->Reset(); 435 438 } 436 439
Note:
See TracChangeset
for help on using the changeset viewer.
