shithub: libobj

Download patch

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;
 }
 
--