summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwtchang%redhat.com <devnull@localhost>2005-08-08 18:37:13 +0000
committerwtchang%redhat.com <devnull@localhost>2005-08-08 18:37:13 +0000
commitc20165ca04cfc798438b93286fafe05488e94057 (patch)
treef1f0a48503bbbd6ef0b5194aaf04a8a695911387
parent61234d431a57b5d236bb2eb42ef348704b300be9 (diff)
downloadnspr-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.c13
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