diff options
author | sdagley%netscape.com <devnull@localhost> | 2001-07-25 03:20:12 +0000 |
---|---|---|
committer | sdagley%netscape.com <devnull@localhost> | 2001-07-25 03:20:12 +0000 |
commit | 826d35d3fafca3d2f100ae8b03445d3858946177 (patch) | |
tree | 546c673f50b6ecc224d3fa556ae13244efb9b6ed | |
parent | 4979daaea5982de31fa5b83cdcd4272bc6e6bce7 (diff) | |
download | nspr-hg-826d35d3fafca3d2f100ae8b03445d3858946177.tar.gz |
Checking in beard's fix for bug #81659 from the 0.9.2 branch onto NSPR tip, r=pinkerton, sr=scc.
-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 c9603fd4..a7df17ca 100644 --- a/pr/src/linking/prlink.c +++ b/pr/src/linking/prlink.c @@ -117,6 +117,8 @@ struct PRLibrary { #if TARGET_CARBON CFBundleRef bundle; #endif + + Ptr main; #endif #ifdef XP_UNIX @@ -605,7 +607,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; @@ -652,10 +653,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) { @@ -703,7 +704,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'; @@ -1201,6 +1202,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 */ |