diff options
author | beard%netscape.com <devnull@localhost> | 2001-07-19 19:32:34 +0000 |
---|---|---|
committer | beard%netscape.com <devnull@localhost> | 2001-07-19 19:32:34 +0000 |
commit | 277d0f28df9a02efd24a213cedcb1da6c31142ab (patch) | |
tree | 426b24d97794ff2bbe952b4718f9ad0fc3fc829f | |
parent | 6fe3e4f7f8ae0dd9c7f86009a45031ef764d413c (diff) | |
download | nspr-hg-MOZILLA_0_9_2_BRANCH.tar.gz |
Fix for bug #81659, r=pinkerton, sr=scc.Netscape61_RELEASEMOZILLA_0_9_2_1_SRC_RELEASEMOZILLA_0_9_2_BRANCH
-rw-r--r-- | pr/src/linking/prlink.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/pr/src/linking/prlink.c b/pr/src/linking/prlink.c index 51979241..99e5d886 100644 --- a/pr/src/linking/prlink.c +++ b/pr/src/linking/prlink.c @@ -101,6 +101,8 @@ struct PRLibrary { #if TARGET_CARBON CFBundleRef bundle; #endif + + Ptr main; #endif #ifdef XP_UNIX @@ -589,7 +591,6 @@ pr_LoadLibraryByPathname(const char *name, PRIntn flags) #if defined(XP_MAC) && TARGET_RT_MAC_CFM { OSErr err; - Ptr main; CFragConnectionID connectionID; Str255 errName; Str255 pName; @@ -636,10 +637,10 @@ pr_LoadLibraryByPathname(const char *name, PRIntn flags) * plugins, but those should go in the Extensions folder anyhow. */ #if 0 - err = NSGetSharedLibrary(pName, &connectionID, &main); + err = NSGetSharedLibrary(pName, &connectionID, &lm->main); #else err = GetSharedLibrary(pName, kCompiledCFragArch, kReferenceCFrag, - &connectionID, &main, errName); + &connectionID, &lm->main, errName); #endif if (err != noErr) { @@ -687,7 +688,7 @@ pr_LoadLibraryByPathname(const char *name, PRIntn flags) /* Finally, try to load the library */ err = GetDiskFragment(&fileSpec, 0, kCFragGoesToEOF, fileSpec.name, - kLoadCFrag, &connectionID, &main, errName); + kLoadCFrag, &connectionID, &lm->main, errName); memcpy(cName, fileSpec.name + 1, fileSpec.name[0]); cName[fileSpec.name[0]] = '\0'; @@ -1177,6 +1178,8 @@ pr_FindSymbolInLib(PRLibrary *lm, const char *name) PStrFromCStr(name, pName); f = (NSFindSymbol(lm->dlh, pName, &symAddr, &symClass) == noErr) ? symAddr : NULL; + + if (f == NULL && strcmp(name, "main") == 0) f = lm->main; } #endif /* XP_MAC */ |