ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/rglmat.c
(Generate patch)

Comparing ray/src/common/rglmat.c (file contents):
Revision 3.4 by greg, Wed Apr 23 02:28:06 2003 UTC vs.
Revision 3.6 by schorsch, Fri Nov 14 17:22:06 2003 UTC

# Line 54 | Line 54 | register OBJREC        *o;
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);
# Line 87 | Line 87 | char   *nam;
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;
# Line 95 | Line 95 | char   *nam;
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   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines