[Python-checkins] CVS: python/dist/src/Python dynload_next.c,2.11,2.12

Jack Jansen jackjansen@users.sourceforge.net
Fri, 01 Feb 2002 14:24:58 -0800


Update of /cvsroot/python/python/dist/src/Python
In directory usw-pr-cvs1:/tmp/cvs-serv4181

Modified Files:
	dynload_next.c 
Log Message:
Got rid of an extra level of {} and funny formatting that was still
there because of the NeXT history.


Index: dynload_next.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Python/dynload_next.c,v
retrieving revision 2.11
retrieving revision 2.12
diff -C2 -d -r2.11 -r2.12
*** dynload_next.c	2002/02/01 16:01:05	2.11
--- dynload_next.c	2002/02/01 22:24:56	2.12
***************
*** 37,117 ****
  	dl_funcptr p = NULL;
  	char funcname[258];
  
  	PyOS_snprintf(funcname, sizeof(funcname), "_init%.200s", shortname);
  
- 	{
- 		NSObjectFileImageReturnCode rc;
- 		NSObjectFileImage image;
- 		NSModule newModule;
- 		NSSymbol theSym;
- 		const char *errString;
- 		char errBuf[512];
- 	
  #ifdef USE_DYLD_GLOBAL_NAMESPACE
! 		if (NSIsSymbolNameDefined(funcname)) {
! 			theSym = NSLookupAndBindSymbol(funcname);
! 			p = (dl_funcptr)NSAddressOfSymbol(theSym);
! 			return p;
! 		}
  #endif
! 		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";
! 			break;
! 			case NSObjectFileImageSuccess:
  			errString = NULL;
  			break;
! 			case NSObjectFileImageInappropriateFile:
  			errString = "Inappropriate file type for dynamic loading";
  			break;
! 			case NSObjectFileImageArch:
  			errString = "Wrong CPU type in object file";
  			break;
! 			case NSObjectFileImageAccess:
  			errString = "Can't read object file (no access)";
  			break;
! 		}
! 		if (errString == NULL) {
! 			newModule = NSLinkModule(image, pathname, LINKOPTIONS);
! 			if (newModule == NULL) {
! 				int errNo;
! 				char *fileName, *moreErrorStr;
! 				NSLinkEditErrors c;
! 				NSLinkEditError( &c, &errNo, &fileName, &moreErrorStr );
! 				PyOS_snprintf(errBuf, 512, "Failure linking new module: %s: %s", 
! 						fileName, moreErrorStr);
! 				errString = errBuf;
! 			}
! 		}
! 		if (errString != NULL) {
! 			PyErr_SetString(PyExc_ImportError, errString);
! 			return NULL;
  		}
  #ifdef USE_DYLD_GLOBAL_NAMESPACE
! 		if (!NSIsSymbolNameDefined(funcname)) {
! 			/* UnlinkModule() isn't implemented in current versions, but calling it does no harm */
! 			NSUnLinkModule(newModule, FALSE);
! 			PyErr_Format(PyExc_ImportError,
! 					 "Loaded module does not contain symbol %.200s",
! 					 funcname);
! 			return NULL;
! 		}
! 		theSym = NSLookupAndBindSymbol(funcname);
  #else
! 		theSym = NSLookupSymbolInModule(newModule, funcname);
! 		if ( theSym == NULL ) {
! 			NSUnLinkModule(newModule, FALSE);
! 			PyErr_Format(PyExc_ImportError,
! 					 "Loaded module does not contain symbol %.200s",
! 					 funcname);
! 			return NULL;
! 		}
! #endif
! 		p = (dl_funcptr)NSAddressOfSymbol(theSym);
  	}
  
  	return p;
--- 37,115 ----
  	dl_funcptr p = NULL;
  	char funcname[258];
+ 	NSObjectFileImageReturnCode rc;
+ 	NSObjectFileImage image;
+ 	NSModule newModule;
+ 	NSSymbol theSym;
+ 	const char *errString;
+ 	char errBuf[512];
  
  	PyOS_snprintf(funcname, sizeof(funcname), "_init%.200s", shortname);
  
  #ifdef USE_DYLD_GLOBAL_NAMESPACE
! 	if (NSIsSymbolNameDefined(funcname)) {
! 		theSym = NSLookupAndBindSymbol(funcname);
! 		p = (dl_funcptr)NSAddressOfSymbol(theSym);
! 		return p;
! 	}
  #endif
! 	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";
! 		break;
! 		case NSObjectFileImageSuccess:
  			errString = NULL;
  			break;
! 		case NSObjectFileImageInappropriateFile:
  			errString = "Inappropriate file type for dynamic loading";
  			break;
! 		case NSObjectFileImageArch:
  			errString = "Wrong CPU type in object file";
  			break;
! 		case NSObjectFileImageAccess:
  			errString = "Can't read object file (no access)";
  			break;
! 	}
! 	if (errString == NULL) {
! 		newModule = NSLinkModule(image, pathname, LINKOPTIONS);
! 		if (newModule == NULL) {
! 			int errNo;
! 			char *fileName, *moreErrorStr;
! 			NSLinkEditErrors c;
! 			NSLinkEditError( &c, &errNo, &fileName, &moreErrorStr );
! 			PyOS_snprintf(errBuf, 512, "Failure linking new module: %s: %s", 
! 					fileName, moreErrorStr);
! 			errString = errBuf;
  		}
+ 	}
+ 	if (errString != NULL) {
+ 		PyErr_SetString(PyExc_ImportError, errString);
+ 		return NULL;
+ 	}
  #ifdef USE_DYLD_GLOBAL_NAMESPACE
! 	if (!NSIsSymbolNameDefined(funcname)) {
! 		/* UnlinkModule() isn't implemented in current versions, but calling it does no harm */
! 		NSUnLinkModule(newModule, FALSE);
! 		PyErr_Format(PyExc_ImportError,
! 				 "Loaded module does not contain symbol %.200s",
! 				 funcname);
! 		return NULL;
! 	}
! 	theSym = NSLookupAndBindSymbol(funcname);
  #else
! 	theSym = NSLookupSymbolInModule(newModule, funcname);
! 	if ( theSym == NULL ) {
! 		NSUnLinkModule(newModule, FALSE);
! 		PyErr_Format(PyExc_ImportError,
! 				 "Loaded module does not contain symbol %.200s",
! 				 funcname);
! 		return NULL;
  	}
+ #endif
+ 	p = (dl_funcptr)NSAddressOfSymbol(theSym);
+ }
  
  	return p;