@@ -36,83 +36,81 @@ dl_funcptr _PyImport_GetDynLoadFunc(const char *fqname, const char *shortname,
36
36
{
37
37
dl_funcptr p = NULL ;
38
38
char funcname [258 ];
39
+ NSObjectFileImageReturnCode rc ;
40
+ NSObjectFileImage image ;
41
+ NSModule newModule ;
42
+ NSSymbol theSym ;
43
+ const char * errString ;
44
+ char errBuf [512 ];
39
45
40
46
PyOS_snprintf (funcname , sizeof (funcname ), "_init%.200s" , shortname );
41
47
42
- {
43
- NSObjectFileImageReturnCode rc ;
44
- NSObjectFileImage image ;
45
- NSModule newModule ;
46
- NSSymbol theSym ;
47
- const char * errString ;
48
- char errBuf [512 ];
49
-
50
48
#ifdef USE_DYLD_GLOBAL_NAMESPACE
51
- if (NSIsSymbolNameDefined (funcname )) {
52
- theSym = NSLookupAndBindSymbol (funcname );
53
- p = (dl_funcptr )NSAddressOfSymbol (theSym );
54
- return p ;
55
- }
49
+ if (NSIsSymbolNameDefined (funcname )) {
50
+ theSym = NSLookupAndBindSymbol (funcname );
51
+ p = (dl_funcptr )NSAddressOfSymbol (theSym );
52
+ return p ;
53
+ }
56
54
#endif
57
- rc = NSCreateObjectFileImageFromFile (pathname , & image );
58
- switch (rc ) {
59
- default :
60
- case NSObjectFileImageFailure :
61
- case NSObjectFileImageFormat :
55
+ rc = NSCreateObjectFileImageFromFile (pathname , & image );
56
+ switch (rc ) {
57
+ default :
58
+ case NSObjectFileImageFailure :
59
+ case NSObjectFileImageFormat :
62
60
/* for these a message is printed on stderr by dyld */
63
61
errString = "Can't create object file image" ;
64
- break ;
65
- case NSObjectFileImageSuccess :
62
+ break ;
63
+ case NSObjectFileImageSuccess :
66
64
errString = NULL ;
67
65
break ;
68
- case NSObjectFileImageInappropriateFile :
66
+ case NSObjectFileImageInappropriateFile :
69
67
errString = "Inappropriate file type for dynamic loading" ;
70
68
break ;
71
- case NSObjectFileImageArch :
69
+ case NSObjectFileImageArch :
72
70
errString = "Wrong CPU type in object file" ;
73
71
break ;
74
- case NSObjectFileImageAccess :
72
+ case NSObjectFileImageAccess :
75
73
errString = "Can't read object file (no access)" ;
76
74
break ;
75
+ }
76
+ if (errString == NULL ) {
77
+ newModule = NSLinkModule (image , pathname , LINKOPTIONS );
78
+ if (newModule == NULL ) {
79
+ int errNo ;
80
+ char * fileName , * moreErrorStr ;
81
+ NSLinkEditErrors c ;
82
+ NSLinkEditError ( & c , & errNo , & fileName , & moreErrorStr );
83
+ PyOS_snprintf (errBuf , 512 , "Failure linking new module: %s: %s" ,
84
+ fileName , moreErrorStr );
85
+ errString = errBuf ;
77
86
}
78
- if (errString == NULL ) {
79
- newModule = NSLinkModule (image , pathname , LINKOPTIONS );
80
- if (newModule == NULL ) {
81
- int errNo ;
82
- char * fileName , * moreErrorStr ;
83
- NSLinkEditErrors c ;
84
- NSLinkEditError ( & c , & errNo , & fileName , & moreErrorStr );
85
- PyOS_snprintf (errBuf , 512 , "Failure linking new module: %s: %s" ,
86
- fileName , moreErrorStr );
87
- errString = errBuf ;
88
- }
89
- }
90
- if (errString != NULL ) {
91
- PyErr_SetString (PyExc_ImportError , errString );
92
- return NULL ;
93
- }
87
+ }
88
+ if (errString != NULL ) {
89
+ PyErr_SetString (PyExc_ImportError , errString );
90
+ return NULL ;
91
+ }
94
92
#ifdef USE_DYLD_GLOBAL_NAMESPACE
95
- if (!NSIsSymbolNameDefined (funcname )) {
96
- /* UnlinkModule() isn't implemented in current versions, but calling it does no harm */
97
- NSUnLinkModule (newModule , FALSE);
98
- PyErr_Format (PyExc_ImportError ,
99
- "Loaded module does not contain symbol %.200s" ,
100
- funcname );
101
- return NULL ;
102
- }
103
- theSym = NSLookupAndBindSymbol (funcname );
93
+ if (!NSIsSymbolNameDefined (funcname )) {
94
+ /* UnlinkModule() isn't implemented in current versions, but calling it does no harm */
95
+ NSUnLinkModule (newModule , FALSE);
96
+ PyErr_Format (PyExc_ImportError ,
97
+ "Loaded module does not contain symbol %.200s" ,
98
+ funcname );
99
+ return NULL ;
100
+ }
101
+ theSym = NSLookupAndBindSymbol (funcname );
104
102
#else
105
- theSym = NSLookupSymbolInModule (newModule , funcname );
106
- if ( theSym == NULL ) {
107
- NSUnLinkModule (newModule , FALSE);
108
- PyErr_Format (PyExc_ImportError ,
109
- "Loaded module does not contain symbol %.200s" ,
110
- funcname );
111
- return NULL ;
112
- }
113
- #endif
114
- p = (dl_funcptr )NSAddressOfSymbol (theSym );
103
+ theSym = NSLookupSymbolInModule (newModule , funcname );
104
+ if ( theSym == NULL ) {
105
+ NSUnLinkModule (newModule , FALSE);
106
+ PyErr_Format (PyExc_ImportError ,
107
+ "Loaded module does not contain symbol %.200s" ,
108
+ funcname );
109
+ return NULL ;
115
110
}
111
+ #endif
112
+ p = (dl_funcptr )NSAddressOfSymbol (theSym );
113
+ }
116
114
117
115
return p ;
118
116
}
0 commit comments