diff options
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index f62cba5c790..36a8309db4d 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -291,15 +291,9 @@ static void oldnewmap_insert(OldNewMap *onm, void *oldaddr, void *newaddr, int n if (oldaddr==NULL || newaddr==NULL) return; - if (onm->nentries == onm->entriessize) { - int osize = onm->entriessize; - OldNew *oentries = onm->entries; - + if (UNLIKELY(onm->nentries == onm->entriessize)) { onm->entriessize *= 2; - onm->entries = MEM_mallocN(sizeof(*onm->entries)*onm->entriessize, "OldNewMap.entries"); - - memcpy(onm->entries, oentries, sizeof(*oentries)*osize); - MEM_freeN(oentries); + onm->entries = MEM_reallocN(onm->entries, sizeof(*onm->entries) * onm->entriessize); } entry = &onm->entries[onm->nentries++]; |