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

Comparing ray/src/common/lookup.c (file contents):
Revision 2.7 by greg, Tue Feb 25 02:47:21 2003 UTC vs.
Revision 2.11 by schorsch, Wed Jul 30 10:11:06 2003 UTC

# Line 9 | Line 9 | static const char      RCSid[] = "$Id$";
9  
10   #include <stdio.h>
11   #include <stdlib.h>
12 +
13   #include "lookup.h"
14  
14 #ifdef  NOSTRUCTASS
15 #define  copystruct(d,s)        bcopy((char *)(s),(char *)(d),sizeof(*(d)))
16 #else
17 #define  copystruct(d,s)        (*(d) = *(s))
18 #endif
15  
20
16   int
17   lu_init(tbl, nel)               /* initialize tbl for at least nel elements */
18   register LUTAB  *tbl;
# Line 129 | Line 124 | tryagain:
124           * recursive call to lu_find().
125           */
126          while (ndx--)
127 <                if (le[ndx].key != NULL)
127 >                if (le[ndx].key != NULL) {
128                          if (le[ndx].data != NULL)
129 <                                copystruct(lu_find(tbl,le[ndx].key), &le[ndx]);
129 >                                *lu_find(tbl,le[ndx].key) = le[ndx];
130                          else if (tbl->freek != NULL)
131                                  (*tbl->freek)(le[ndx].key);
132 +                }
133          free((void *)le);
134          goto tryagain;                  /* should happen only once! */
135   }
# Line 160 | Line 156 | char   *key;
156   int
157   lu_doall(tbl, f)                /* loop through all valid table entries */
158   register LUTAB  *tbl;
159 < int     (*f)();
159 > int     (*f)(LUENT *);
160   {
161          int     rval = 0;
162          register LUENT  *tp;
163  
164          for (tp = tbl->tabl + tbl->tsiz; tp-- > tbl->tabl; )
165 <                if (tp->data != NULL)
165 >                if (tp->data != NULL) {
166                          if (f != NULL)
167                                  rval += (*f)(tp);
168                          else
169                                  rval++;
170 +                }
171          return(rval);
172   }
173  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines