- i = pBuckets[ iNameHash ];
- if(symtab[i].shndx != SHN_UNDEF && strcmp(dynstrtab + symtab[i].nameOfs, Name) == 0) {
- *ret = (void*)( (uintptr_t) symtab[ i ].value + iBaseDiff );
- if(Size) *Size = symtab[i].size;
- return 1;
- }
-
- while(pChains[i] != STN_UNDEF)
- {
- i = pChains[i];
- if(symtab[i].shndx != SHN_UNDEF && strcmp(dynstrtab + symtab[ i ].nameOfs, Name) == 0) {
- *ret = (void*)( (uintptr_t)symtab[ i ].value + iBaseDiff );
- if(Size) *Size = symtab[i].size;
+ int idx = pBuckets[ iNameHash ];
+ do {
+ Elf32_Sym *sym = &symtab[idx];
+ assert(sym);
+ if(sym->shndx != SHN_UNDEF && strcmp(dynstrtab + sym->nameOfs, Name) == 0) {
+ *ret = (void*)( (uintptr_t)sym->value + iBaseDiff );
+ if(Size) *Size = sym->size;