[Python-checkins] CVS: python/dist/src/Python dynload_next.c,2.7,2.7.6.1
Anthony Baxter
anthonybaxter@users.sourceforge.net
Tue, 20 Nov 2001 20:58:39 -0800
Update of /cvsroot/python/python/dist/src/Python
In directory usw-pr-cvs1:/tmp/cvs-serv11381
Modified Files:
Tag: release21-maint
dynload_next.c
Log Message:
backport of 2.8 by jack:
Patch by Jonathan Wight (slightly reformatted) to forestall loading the
same module twice, which apparently crashes Python. I could not test the
error condition, but in normal life it seems to have no adverse effects.
Also removed an unsued variable, and corrected 2 glaring errors (missing
'case' in front of a label).
Index: dynload_next.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Python/dynload_next.c,v
retrieving revision 2.7
retrieving revision 2.7.6.1
diff -C2 -d -r2.7 -r2.7.6.1
*** dynload_next.c 2000/09/01 23:29:28 2.7
--- dynload_next.c 2001/11/21 04:58:37 2.7.6.1
***************
*** 120,131 ****
NSModule newModule;
NSSymbol theSym;
- void *symaddr;
const char *errString;
rc = NSCreateObjectFileImageFromFile(pathname, &image);
switch(rc) {
default:
case NSObjectFileImageFailure:
! NSObjectFileImageFormat:
/* for these a message is printed on stderr by dyld */
errString = "Can't create object file image";
--- 120,135 ----
NSModule newModule;
NSSymbol theSym;
const char *errString;
+ if (NSIsSymbolNameDefined(funcname)) {
+ theSym = NSLookupAndBindSymbol(funcname);
+ p = (dl_funcptr)NSAddressOfSymbol(theSym);
+ return p;
+ }
rc = NSCreateObjectFileImageFromFile(pathname, &image);
switch(rc) {
default:
case NSObjectFileImageFailure:
! case NSObjectFileImageFormat:
/* for these a message is printed on stderr by dyld */
errString = "Can't create object file image";
***************
*** 140,144 ****
errString = "Wrong CPU type in object file";
break;
! NSObjectFileImageAccess:
errString = "Can't read object file (no access)";
break;
--- 144,148 ----
errString = "Wrong CPU type in object file";
break;
! case NSObjectFileImageAccess:
errString = "Can't read object file (no access)";
break;