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