diff options
author | Simon Marlow <marlowsd@gmail.com> | 2008-07-30 10:12:52 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2008-07-30 10:12:52 +0000 |
commit | 4f4dd70fd10ab13e41cb0f541bbfee2330d149da (patch) | |
tree | 19aa92e6f80b689c7c203adef4495d69b415208f | |
parent | 72cd126afbeae4fb60f4b5ef10e21133611cbafa (diff) | |
download | haskell-4f4dd70fd10ab13e41cb0f541bbfee2330d149da.tar.gz |
FIX #2375: remove oc->lochash completely, it apparently isn't used
-rw-r--r-- | rts/Linker.c | 35 | ||||
-rw-r--r-- | rts/LinkerInternals.h | 3 |
2 files changed, 0 insertions, 38 deletions
diff --git a/rts/Linker.c b/rts/Linker.c index 7d9bc34428..1a99f12d00 100644 --- a/rts/Linker.c +++ b/rts/Linker.c @@ -1176,23 +1176,6 @@ lookupSymbol( char *lbl ) } } -static -__attribute((unused)) -void * -lookupLocalSymbol( ObjectCode* oc, char *lbl ) -{ - void *val; - initLinker() ; - val = lookupStrHashTable(oc->lochash, lbl); - - if (val == NULL) { - return NULL; - } else { - return val; - } -} - - /* ----------------------------------------------------------------------------- * Debugging aid: look in GHCi's object symbol tables for symbols * within DELTA bytes of the specified address, and show their names. @@ -1214,11 +1197,7 @@ void ghci_enquire ( char* addr ) for (i = 0; i < oc->n_symbols; i++) { sym = oc->symbols[i]; if (sym == NULL) continue; - // debugBelch("enquire %p %p\n", sym, oc->lochash); a = NULL; - if (oc->lochash != NULL) { - a = lookupStrHashTable(oc->lochash, sym); - } if (a == NULL) { a = lookupStrHashTable(symhash, sym); } @@ -1303,7 +1282,6 @@ loadObj( char *path ) oc->fileSize = st.st_size; oc->symbols = NULL; oc->sections = NULL; - oc->lochash = allocStrHashTable(); oc->proddables = NULL; /* chain it onto the list of objects */ @@ -1512,9 +1490,6 @@ unloadObj( char *path ) stgFree(oc->fileName); stgFree(oc->symbols); stgFree(oc->sections); - /* The local hash table should have been freed at the end - of the ocResolve_ call on it. */ - ASSERT(oc->lochash == NULL); stgFree(oc); return 1; } @@ -3628,10 +3603,6 @@ ocResolve_ELF ( ObjectCode* oc ) } } - /* Free the local symbol table; we won't need it again. */ - freeHashTable(oc->lochash, NULL); - oc->lochash = NULL; - #if defined(powerpc_HOST_ARCH) ocFlushInstructionCache( oc ); #endif @@ -3910,8 +3881,6 @@ static int resolveImports( if((symbol->n_type & N_TYPE) == N_UNDF && (symbol->n_type & N_EXT) && (symbol->n_value != 0)) addr = (void*) (symbol->n_value); - else if((addr = lookupLocalSymbol(oc,nm)) != NULL) - ; else addr = lookupSymbol(nm); if(!addr) @@ -4558,10 +4527,6 @@ static int ocResolve_MachO(ObjectCode* oc) return 0; } - /* Free the local symbol table; we won't need it again. */ - freeHashTable(oc->lochash, NULL); - oc->lochash = NULL; - #if defined (powerpc_HOST_ARCH) ocFlushInstructionCache( oc ); #endif diff --git a/rts/LinkerInternals.h b/rts/LinkerInternals.h index f081e62894..561a224a09 100644 --- a/rts/LinkerInternals.h +++ b/rts/LinkerInternals.h @@ -85,9 +85,6 @@ typedef struct _ObjectCode { list. */ Section* sections; - /* A private hash table for local symbols. */ - HashTable* lochash; - /* Allow a chain of these things */ struct _ObjectCode * next; |