mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Got rid of an extra level of {} and funny formatting that was still
there because of the NeXT history.
This commit is contained in:
		
							parent
							
								
									3b388ec8b3
								
							
						
					
					
						commit
						a762f4ca18
					
				
					 1 changed files with 59 additions and 61 deletions
				
			
		|  | @ -36,83 +36,81 @@ dl_funcptr _PyImport_GetDynLoadFunc(const char *fqname, const char *shortname, | ||||||
| { | { | ||||||
| 	dl_funcptr p = NULL; | 	dl_funcptr p = NULL; | ||||||
| 	char funcname[258]; | 	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); | 	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 | #ifdef USE_DYLD_GLOBAL_NAMESPACE | ||||||
| 		if (NSIsSymbolNameDefined(funcname)) { | 	if (NSIsSymbolNameDefined(funcname)) { | ||||||
| 			theSym = NSLookupAndBindSymbol(funcname); | 		theSym = NSLookupAndBindSymbol(funcname); | ||||||
| 			p = (dl_funcptr)NSAddressOfSymbol(theSym); | 		p = (dl_funcptr)NSAddressOfSymbol(theSym); | ||||||
| 			return p; | 		return p; | ||||||
| 		} | 	} | ||||||
| #endif | #endif | ||||||
| 		rc = NSCreateObjectFileImageFromFile(pathname, &image); | 	rc = NSCreateObjectFileImageFromFile(pathname, &image); | ||||||
| 		switch(rc) { | 	switch(rc) { | ||||||
| 			default: | 		default: | ||||||
| 			case NSObjectFileImageFailure: | 		case NSObjectFileImageFailure: | ||||||
| 			case NSObjectFileImageFormat: | 		case NSObjectFileImageFormat: | ||||||
| 			/* for these a message is printed on stderr by dyld */ | 			/* for these a message is printed on stderr by dyld */ | ||||||
| 			errString = "Can't create object file image"; | 			errString = "Can't create object file image"; | ||||||
| 			break; | 		break; | ||||||
| 			case NSObjectFileImageSuccess: | 		case NSObjectFileImageSuccess: | ||||||
| 			errString = NULL; | 			errString = NULL; | ||||||
| 			break; | 			break; | ||||||
| 			case NSObjectFileImageInappropriateFile: | 		case NSObjectFileImageInappropriateFile: | ||||||
| 			errString = "Inappropriate file type for dynamic loading"; | 			errString = "Inappropriate file type for dynamic loading"; | ||||||
| 			break; | 			break; | ||||||
| 			case NSObjectFileImageArch: | 		case NSObjectFileImageArch: | ||||||
| 			errString = "Wrong CPU type in object file"; | 			errString = "Wrong CPU type in object file"; | ||||||
| 			break; | 			break; | ||||||
| 			case NSObjectFileImageAccess: | 		case NSObjectFileImageAccess: | ||||||
| 			errString = "Can't read object file (no access)"; | 			errString = "Can't read object file (no access)"; | ||||||
| 			break; | 			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); |  | ||||||
| 	} | 	} | ||||||
|  | 	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; | 	return p; | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jack Jansen
						Jack Jansen