16 |
|
#include "object.h" |
17 |
|
|
18 |
|
#ifndef OSTSIZ |
19 |
< |
#ifdef BIGMEM |
20 |
< |
#define OSTSIZ 262139 /* object table size (a prime!) */ |
21 |
< |
#else |
19 |
> |
#ifdef SMLMEM |
20 |
|
#define OSTSIZ 32749 /* object table size (a prime!) */ |
21 |
+ |
#else |
22 |
+ |
#define OSTSIZ 262139 /* object table size (a prime!) */ |
23 |
|
#endif |
24 |
|
#endif |
25 |
|
|
209 |
|
ot = oseti(i*OSTSIZ + osentry); |
210 |
|
if (*os > 0) /* found it */ |
211 |
|
return(ot); |
212 |
< |
if (!isfull(ot)) /* entry overflow */ |
212 |
> |
if (!isfull(ot)) { /* entry overflow */ |
213 |
|
if (++ntries < OSTSIZ) |
214 |
|
goto tryagain; |
215 |
|
else |
216 |
|
error(INTERNAL, "hash table overflow in fullnode"); |
217 |
+ |
} |
218 |
|
/* remember position */ |
219 |
|
i = os - ostable[osentry]; |
220 |
|
os = ostable[osentry] = (OBJECT *)realloc( |
230 |
|
return(ot); |
231 |
|
memerr: |
232 |
|
error(SYSTEM, "out of memory in fullnode"); |
233 |
+ |
return NULL; /* pro forma return */ |
234 |
|
} |
235 |
|
|
236 |
|
|