summaryrefslogtreecommitdiff
path: root/src/modelops/relocate.c
diff options
context:
space:
mode:
authornorly <ny-git@enpas.org>2013-06-15 11:53:17 +0100
committernorly <ny-git@enpas.org>2013-06-15 11:53:17 +0100
commit5af52fe4fc36c1a355f4bfad58f80f52f822f768 (patch)
tree3aa1dbe051c6ca80099f21c53267c5376db01513 /src/modelops/relocate.c
parent602f9247d9fe8ce4625147d0da105a43c4d869a2 (diff)
Make symtab and reltab resident in ElfuScn
Diffstat (limited to 'src/modelops/relocate.c')
-rw-r--r--src/modelops/relocate.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/modelops/relocate.c b/src/modelops/relocate.c
index 972bda3..679f57f 100644
--- a/src/modelops/relocate.c
+++ b/src/modelops/relocate.c
@@ -41,11 +41,9 @@ static GElf_Word pltLookupVal(ElfuElf *metarget, char *name)
/* Look up name */
- assert(relplt->reltab);
assert(relplt->linkptr);
- assert(relplt->linkptr->symtab);
j = 0;
- CIRCLEQ_FOREACH(rel, &relplt->reltab->rels, elem) {
+ CIRCLEQ_FOREACH(rel, &relplt->reltab.rels, elem) {
GElf_Word i;
ElfuSym *sym;
@@ -55,7 +53,7 @@ static GElf_Word pltLookupVal(ElfuElf *metarget, char *name)
continue;
}
- sym = CIRCLEQ_FIRST(&relplt->linkptr->symtab->syms);
+ sym = CIRCLEQ_FIRST(&relplt->linkptr->symtab.syms);
for (i = 1; i < rel->sym; i++) {
sym = CIRCLEQ_NEXT(sym, elem);
}
@@ -88,11 +86,10 @@ static GElf_Word symtabLookupVal(ElfuElf *metarget, ElfuScn *msst, GElf_Word ent
assert(metarget);
assert(msst);
- assert(msst->symtab);
assert(entry > 0);
- assert(!CIRCLEQ_EMPTY(&msst->symtab->syms));
+ assert(!CIRCLEQ_EMPTY(&msst->symtab.syms));
- sym = CIRCLEQ_FIRST(&msst->symtab->syms);
+ sym = CIRCLEQ_FIRST(&msst->symtab.syms);
for (i = 1; i < entry; i++) {
sym = CIRCLEQ_NEXT(sym, elem);
}
@@ -140,7 +137,7 @@ void elfu_mRelocate32(ElfuElf *metarget, ElfuScn *mstarget, ElfuScn *msrt)
mstarget->shdr.sh_type,
mstarget->shdr.sh_size);
- CIRCLEQ_FOREACH(rel, &msrt->reltab->rels, elem) {
+ CIRCLEQ_FOREACH(rel, &msrt->reltab.rels, elem) {
Elf32_Word *dest = (Elf32_Word*)(((char*)(mstarget->data.d_buf)) + rel->offset);
Elf32_Word a = rel->addendUsed ? rel->addend : *dest;
Elf32_Addr p = mstarget->shdr.sh_addr + rel->offset;