7b630d3
Index: /ps/trunk/source/lib/allocators/headerless.cpp
7b630d3
===================================================================
7b630d3
--- /ps/trunk/source/lib/allocators/headerless.cpp	(revision 15333)
7b630d3
+++ /ps/trunk/source/lib/allocators/headerless.cpp	(revision 15334)
7b630d3
@@ -55,10 +55,12 @@
7b630d3
 	}
7b630d3
 
7b630d3
-	FreedBlock(uintptr_t id, size_t size)
7b630d3
-		:  m_magic(s_magic), m_size(size), m_id(id)
7b630d3
-	{
7b630d3
-	}
7b630d3
-
7b630d3
-	~FreedBlock()
7b630d3
+	void Setup(uintptr_t id, size_t size)
7b630d3
+	{
7b630d3
+		m_magic = s_magic;
7b630d3
+		m_size = size;
7b630d3
+		m_id = id;
7b630d3
+	}
7b630d3
+
7b630d3
+	void Reset()
7b630d3
 	{
7b630d3
 		// clear all fields to prevent accidental reuse
7b630d3
@@ -411,6 +413,7 @@
7b630d3
 	FreedBlock* WriteTags(u8* p, size_t size)
7b630d3
 	{
7b630d3
-		FreedBlock* freedBlock = new(p) FreedBlock(s_headerId, size);
7b630d3
-		(void)new(Footer(freedBlock)) FreedBlock(s_footerId, size);
7b630d3
+		FreedBlock* freedBlock = (FreedBlock*)p;
7b630d3
+		freedBlock->Setup(s_headerId, size);
7b630d3
+		Footer(freedBlock)->Setup(s_footerId, size);
7b630d3
 
7b630d3
 		m_freeBlocks++;
7b630d3
@@ -431,6 +434,6 @@
7b630d3
 
7b630d3
 		FreedBlock* footer = Footer(freedBlock);
7b630d3
-		freedBlock->~FreedBlock();
7b630d3
-		footer->~FreedBlock();
7b630d3
+		freedBlock->Reset();
7b630d3
+		footer->Reset();
7b630d3
 	}
7b630d3