54 |
|
goto memerr; |
55 |
|
strcpy(lup->key, o->oname); |
56 |
|
} else if (lup->data != NULL) |
57 |
< |
freemtl((MATREC *)lup->data); |
57 |
> |
freemtl(lup->data); |
58 |
|
if ((lup->data = o->os) != NULL) /* make material reference */ |
59 |
|
((MATREC *)lup->data)->nlinks++; |
60 |
|
return(0); |
87 |
|
goto memerr; |
88 |
|
strcpy(lup->key, nam); |
89 |
|
} else if (lup->data != NULL) |
90 |
< |
freemtl((MATREC *)lup->data); |
90 |
> |
freemtl(lup->data); |
91 |
|
lup->data = (char *)malloc(sizeof(MATREC)); |
92 |
|
if (lup->data == NULL) |
93 |
|
goto memerr; |
95 |
|
return((MATREC *)lup->data); |
96 |
|
memerr: |
97 |
|
error(SYSTEM, "out of memory in newmaterial"); |
98 |
+ |
return NULL; /* pro forma return */ |
99 |
|
} |
100 |
|
|
101 |
|
|
102 |
|
void |
103 |
< |
freemtl(mp) /* free a material */ |
104 |
< |
register MATREC *mp; |
103 |
> |
freemtl(p) /* free a material */ |
104 |
> |
void *p; |
105 |
|
{ |
106 |
+ |
register MATREC *mp = (MATREC *)p; |
107 |
+ |
|
108 |
|
if (!--mp->nlinks) |
109 |
|
free((void *)mp); |
110 |
|
} |