File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -163,6 +163,7 @@ class PtexHashMap
163163 getTable (_table, header, entries);
164164
165165 for (uint32_t i = 0 ; i < header->numEntries ; ++i) {
166+ entries[i].key .~Key ();
166167 if (entries[i].value ) delete entries[i].value ;
167168 }
168169 free (_table);
@@ -264,9 +265,14 @@ class PtexHashMap
264265 memsize = sizeof (TableHeader) + sizeof (Entry) * numEntries;
265266 void * table = malloc (memsize);
266267 memset (table, 0 , memsize);
267- TableHeader* header = (TableHeader*) table ;
268+ TableHeader* header = new (table) TableHeader ;
268269 header->numEntries = numEntries;
269270 header->size = 0 ;
271+ Entry* entries = (Entry*)((char *)table + sizeof (TableHeader));
272+ for (int32_t i = 0 ; i < numEntries; ++i)
273+ {
274+ new (&entries[i]) Entry ();
275+ }
270276 return table;
271277 }
272278
You can’t perform that action at this time.
0 commit comments