ref: 981eb5e284f694087026d976a70d3d0ad57d6f59
parent: 06bb0cf6d6dfc0e3591222ee8564f5f1ca9aa054
author: rodri <rgl@antares-labs.eu>
date: Sun Jun 22 20:18:03 EDT 2025
improve allocation strategies for Index and Vertex arrays
--- a/obj.c
+++ b/obj.c
@@ -271,7 +271,8 @@
static int
addvertva(OBJVertexArray *va, OBJVertex v)
{
- va->verts = erealloc(va->verts, (va->nvert + 1)*sizeof(OBJVertex));
+ if(va->nvert % 4 == 0)
+ va->verts = erealloc(va->verts, (va->nvert + 4)*sizeof(OBJVertex));
va->verts[va->nvert++] = v;
return va->nvert-1;
}
@@ -310,7 +311,8 @@
OBJIndexArray *tab;
tab = &e->indextab[idxtab];
- tab->indices = erealloc(tab->indices, (tab->nindex + 1)*sizeof(int));
+ if(tab->nindex % 4 == 0)
+ tab->indices = erealloc(tab->indices, (tab->nindex + 4)*sizeof(int));
tab->indices[tab->nindex++] = idx;
}
--
⑨