Cleanup patches from Greg Stein:

* in import.c, #ifdef out references to dynamic loading based on
  HAVE_DYNAMIC_LOADING

* clean out the platform-specific crud from importdl.c.
  [ maybe fold this function into import.c and drop the importdl.c file? Greg.]

* change GetDynLoadFunc's "funcname" parameter to "shortname". change
  "name" to "fqname" for clarification.

* each GetDynLoadFunc now creates its own funcname value.

  WARNING: as I mentioned previously, we may run into an issue with a
  missing "_" on some platforms. Testing will show this pretty quickly,
  however.

* move pathname munging into dynload_shlib.c
This commit is contained in:
Guido van Rossum 1999-12-22 14:09:35 +00:00
parent 6a90b5e4d0
commit 96a8fb7e99
11 changed files with 64 additions and 75 deletions

View file

@ -185,13 +185,14 @@ static void beos_add_dyn( char *name, image_id id )
dl_funcptr _PyImport_GetDynLoadFunc(const char *name, const char *funcname,
dl_funcptr _PyImport_GetDynLoadFunc(const char *fqname, const char *shortname,
const char *pathname, FILE *fp)
{
dl_funcptr p;
image_id the_id;
status_t retval;
char fullpath[PATH_MAX];
char funcname[258];
if( Py_VerboseFlag ) {
printf( "load_add_on( %s )\n", pathname );
@ -236,6 +237,7 @@ dl_funcptr _PyImport_GetDynLoadFunc(const char *name, const char *funcname,
return NULL;
}
sprintf(funcname, "init%.200s", shortname);
if( Py_VerboseFlag ) {
printf( "get_image_symbol( %s )\n", funcname );
}
@ -274,7 +276,7 @@ dl_funcptr _PyImport_GetDynLoadFunc(const char *name, const char *funcname,
/* Save the module name and image ID for later so we can clean up
* gracefully.
*/
beos_add_dyn( name, the_id );
beos_add_dyn( fqname, the_id );
return p;
}