diff options
author | wtchang%redhat.com <devnull@localhost> | 2005-08-08 18:37:13 +0000 |
---|---|---|
committer | wtchang%redhat.com <devnull@localhost> | 2005-08-08 18:37:13 +0000 |
commit | c20165ca04cfc798438b93286fafe05488e94057 (patch) | |
tree | f1f0a48503bbbd6ef0b5194aaf04a8a695911387 | |
parent | 61234d431a57b5d236bb2eb42ef348704b300be9 (diff) | |
download | nspr-hg-c20165ca04cfc798438b93286fafe05488e94057.tar.gz |
Bugzilla bug 303345: restored the SYM_OFFSET macro to make the code easier
to understand. Suggested by Simon Fraser.
-rw-r--r-- | pr/src/linking/prlink.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/pr/src/linking/prlink.c b/pr/src/linking/prlink.c index c1118f40..55831bf7 100644 --- a/pr/src/linking/prlink.c +++ b/pr/src/linking/prlink.c @@ -1149,8 +1149,10 @@ pr_FindSymbolInLib(PRLibrary *lm, const char *name) #endif /* WIN32 || WIN16 */ #ifdef XP_MACOSX +/* add this offset to skip the leading underscore in name */ +#define SYM_OFFSET 1 if (lm->bundle) { - CFStringRef nameRef = CFStringCreateWithCString(NULL, name + 1, kCFStringEncodingASCII); + CFStringRef nameRef = CFStringCreateWithCString(NULL, name + SYM_OFFSET, kCFStringEncodingASCII); if (nameRef) { f = CFBundleGetFunctionPointerForName(lm->bundle, nameRef); CFRelease(nameRef); @@ -1161,18 +1163,18 @@ pr_FindSymbolInLib(PRLibrary *lm, const char *name) CFragSymbolClass symClass; Str255 pName; - PR_LOG(_pr_linker_lm, PR_LOG_MIN, ("Looking up symbol: %s", name + 1)); + PR_LOG(_pr_linker_lm, PR_LOG_MIN, ("Looking up symbol: %s", name + SYM_OFFSET)); - c2pstrcpy(pName, name + 1); + c2pstrcpy(pName, name + SYM_OFFSET); f = (FindSymbol(lm->connection, pName, &symAddr, &symClass) == noErr) ? symAddr : NULL; /* callers expect mach-o function pointers, so must wrap tvectors with glue. */ if (f && symClass == kTVectorCFragSymbol) { - f = TV2FP(lm->wrappers, name + 1, f); + f = TV2FP(lm->wrappers, name + SYM_OFFSET, f); } - if (f == NULL && strcmp(name + 1, "main") == 0) f = lm->main; + if (f == NULL && strcmp(name + SYM_OFFSET, "main") == 0) f = lm->main; } if (lm->image) { NSSymbol symbol; @@ -1184,6 +1186,7 @@ pr_FindSymbolInLib(PRLibrary *lm, const char *name) else f = NULL; } +#undef SYM_OFFSET #endif /* XP_MACOSX */ #ifdef XP_BEOS |