shithub: libgraphics

Download patch

ref: f9d1c08b05ccfe9e7a87811a14220a35cda48e1f
parent: a68452b76fdc6b319857e8b5a9a9f68063c63299
author: rodri <rgl@antares-labs.eu>
date: Mon Jun 30 10:39:21 EDT 2025

bring some e-utism into your life they said. it'll be fun they said

add _estrdup and _equotestrdup to the soup.

--- a/alloc.c
+++ b/alloc.c
@@ -33,6 +33,30 @@
 	return np;
 }
 
+char *
+_estrdup(char *s)
+{
+	char *ns;
+
+	ns = strdup(s);
+	if(ns == nil)
+		sysfatal("strdup: %r");
+	setmalloctag(ns, getcallerpc(&s));
+	return ns;
+}
+
+char *
+_equotestrdup(char *s)
+{
+	char *ns;
+
+	ns = quotestrdup(s);
+	if(ns == nil)
+		sysfatal("quotestrdup: %r");
+	setmalloctag(ns, getcallerpc(&s));
+	return ns;
+}
+
 Memimage *
 _eallocmemimage(Rectangle r, ulong chan)
 {
--- a/internal.h
+++ b/internal.h
@@ -89,6 +89,8 @@
 /* alloc */
 void *_emalloc(ulong);
 void *_erealloc(void*, ulong);
+char *_estrdup(char*);
+char *_equotestrdup(char*);
 Memimage *_eallocmemimage(Rectangle, ulong);
 
 /* raster */
--- a/marshal.c
+++ b/marshal.c
@@ -35,17 +35,6 @@
 	int loaded;			/* was the table loaded into a model already? */
 };
 
-static char *
-estrdup(char *s)
-{
-	char *t;
-
-	if((t = strdup(s)) == nil)
-		sysfatal("strdup: %r");
-	setmalloctag(t, getcallerpc(&s));
-	return t;
-}
-
 static void
 error(Curline *l, char *fmt, ...)
 {
@@ -554,7 +543,7 @@
 			}
 			memset(&mtl, 0, sizeof mtl);
 
-			mtl.name = estrdup(f[1]);
+			mtl.name = _estrdup(f[1]);
 			inamaterial++;
 		}else{
 			error(&curline, "syntax error");
@@ -709,9 +698,7 @@
 		n += Bprintidx(b, p->v[i]);
 	n += Bprintidx(b, p->tangent);
 	if(p->mtl != nil){
-		s = quotestrdup(p->mtl->name);
-		if(s == nil)
-			sysfatal("quotestrdup: %r");
+		s = _equotestrdup(p->mtl->name);
 		n += Bprint(b, " %s", s);
 		free(s);
 	}
@@ -725,9 +712,7 @@
 	char *s;
 	int n;
 
-	s = quotestrdup(m->name);
-	if(s == nil)
-		sysfatal("quotestrdup: %r");
+	s = _equotestrdup(m->name);
 	n = Bprint(b, "mtl %s {\n", s);
 	free(s);
 
@@ -855,7 +840,7 @@
 				fprint(2, "warning: %r\n");
 
 //			if(mtl->diffusemap->file == nil)
-				mtl->diffusemap->file = estrdup(strrchr(buf, '/')+1);
+				mtl->diffusemap->file = _estrdup(strrchr(buf, '/')+1);
 		}
 
 		if(mtl->specularmap != nil){
@@ -866,7 +851,7 @@
 				fprint(2, "warning: %r\n");
 
 //			if(mtl->specularmap->file == nil)
-				mtl->specularmap->file = estrdup(strrchr(buf, '/')+1);
+				mtl->specularmap->file = _estrdup(strrchr(buf, '/')+1);
 		}
 
 		if(mtl->normalmap != nil){
@@ -877,7 +862,7 @@
 				fprint(2, "warning: %r\n");
 
 //			if(mtl->normalmap->file == nil)
-				mtl->normalmap->file = estrdup(strrchr(buf, '/')+1);
+				mtl->normalmap->file = _estrdup(strrchr(buf, '/')+1);
 		}
 	}
 
--- a/raster.c
+++ b/raster.c
@@ -16,7 +16,7 @@
 
 	r = _emalloc(sizeof *r);
 	memset(r, 0, sizeof *r);
-	if(name != nil && (r->name = strdup(name)) == nil)
+	if(name != nil && (r->name = _estrdup(name)) == nil)
 		sysfatal("strdup: %r");
 	r->chan = chan;
 	r->r = rr;
--- a/scene.c
+++ b/scene.c
@@ -37,7 +37,7 @@
 
 	mtl = _emalloc(sizeof *mtl);
 	memset(mtl, 0, sizeof *mtl);
-	mtl->name = strdup(name);
+	mtl->name = _estrdup(name);
 	mtl->ambient = Pt3(1,1,1,1);
 	mtl->diffuse = Pt3(1,1,1,1);
 	mtl->specular = Pt3(1,1,1,1);
@@ -159,9 +159,7 @@
 			nm->materials[i].diffusemap = duptexture(m->materials[i].diffusemap);
 			nm->materials[i].specularmap = duptexture(m->materials[i].specularmap);
 			nm->materials[i].normalmap = duptexture(m->materials[i].normalmap);
-			nm->materials[i].name = strdup(m->materials[i].name);
-			if(nm->materials[i].name == nil)
-				sysfatal("strdup: %r");
+			nm->materials[i].name = _estrdup(m->materials[i].name);
 		}
 	}
 	nm->positions = dupitemarray(m->positions);
@@ -263,7 +261,7 @@
 	e->bx = Vec3(1,0,0);
 	e->by = Vec3(0,1,0);
 	e->bz = Vec3(0,0,1);
-	e->name = name == nil? nil: strdup(name);
+	e->name = name == nil? nil: _estrdup(name);
 	e->mdl = m;
 	e->prev = e->next = nil;
 	return e;
@@ -280,7 +278,7 @@
 	ne = newentity(nil, nil);
 	*ne = *e;
 	if(e->name != nil)
-		ne->name = strdup(e->name);
+		ne->name = _estrdup(e->name);
 	ne->mdl = dupmodel(e->mdl);
 	ne->prev = ne->next = nil;
 	return ne;
@@ -343,7 +341,7 @@
 	Scene *s;
 
 	s = _emalloc(sizeof *s);
-	s->name = name == nil? nil: strdup(name);
+	s->name = name == nil? nil: _estrdup(name);
 	s->ents.prev = s->ents.next = &s->ents;
 	s->nents = 0;
 	s->lights.prev = s->lights.next = &s->lights;
--- a/texture.c
+++ b/texture.c
@@ -192,7 +192,7 @@
 	ncm = _emalloc(sizeof *ncm);
 	memset(ncm, 0, sizeof *ncm);
 	if(cm->name != nil)
-		ncm->name = strdup(cm->name);
+		ncm->name = _estrdup(cm->name);
 	for(i = 0; i < 6; i++)
 		ncm->faces[i] = duptexture(cm->faces[i]);
 	return ncm;
--