| 21 |
|
OBJECT *htab; /* table, if allocated */ |
| 22 |
|
} modtab = {100, NULL}, objtab = {1000, NULL}; /* modifiers and objects */ |
| 23 |
|
|
| 24 |
< |
static int otndx(); |
| 24 |
> |
static int otndx(char *, struct ohtab *); |
| 25 |
|
|
| 26 |
|
|
| 27 |
|
OBJECT |
| 32 |
|
|
| 33 |
|
for (i = nobjects>>OBJBLKSHFT; i >= 0; i--) { |
| 34 |
|
j = op - objblock[i]; |
| 35 |
< |
if (j >= 0 && j < OBJBLKSIZ) |
| 35 |
> |
if ((j >= 0) & (j < OBJBLKSIZ)) |
| 36 |
|
return((i<<OBJBLKSHFT) + j); |
| 37 |
|
} |
| 38 |
|
return(OVOID); |
| 48 |
|
register int i; |
| 49 |
|
|
| 50 |
|
i = modifier(mname); /* try hash table first */ |
| 51 |
< |
if (i < obj) |
| 51 |
> |
if ((obj == OVOID) | (i < obj)) |
| 52 |
|
return(i); |
| 53 |
|
for (i = obj; i-- > 0; ) { /* need to search */ |
| 54 |
|
op = objptr(i); |
| 158 |
|
hval = shash(name); |
| 159 |
|
tryagain: |
| 160 |
|
for (i = 0; i < tab->hsiz; i++) { |
| 161 |
< |
ndx = (hval + i*i) % tab->hsiz; |
| 161 |
> |
ndx = (hval + (unsigned long)i*i) % tab->hsiz; |
| 162 |
|
if (tab->htab[ndx] == OVOID || |
| 163 |
|
!strcmp(objptr(tab->htab[ndx])->oname, name)) |
| 164 |
|
return(ndx); |