| 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( |
| 221 |
< |
(char *)ostable[osentry], |
| 221 |
> |
(void *)ostable[osentry], |
| 222 |
|
(unsigned)(i+oset[0]+2)*sizeof(OBJECT)); |
| 223 |
|
if (os == NULL) |
| 224 |
|
goto memerr; |
| 230 |
|
return(ot); |
| 231 |
|
memerr: |
| 232 |
|
error(SYSTEM, "out of memory in fullnode"); |
| 233 |
+ |
return 0; /* pro forma return */ |
| 234 |
|
} |
| 235 |
|
|
| 236 |
|
|