X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fsysdll.c;h=c9e28c04d1dae4c55d10f2ed2831a283a1e1a83f;hb=6cf5b62d9939d32852d58b425ee359c087e06856;hp=679e5159190430767193b33146f6f90d181fc5bd;hpb=ee38d21b330f5001b47a577cefb5ba7b82a3b7d3;p=chise%2Fxemacs-chise.git.1 diff --git a/src/sysdll.c b/src/sysdll.c index 679e515..c9e28c0 100644 --- a/src/sysdll.c +++ b/src/sysdll.c @@ -263,11 +263,23 @@ dll_handle dll_open (const char *fname) { NSObjectFileImage file; - NSObjectFileImageReturnCode ret = - NSCreateObjectFileImageFromFile(fname, &file); + NSObjectFileImageReturnCode ret; + + /* + * MacOS X dll support is for bundles, not the current executable, so return + * NULL is this case. However, dll_function() uses a special hack where a + * NULL handle can be used to find executable symbols. This satisfies the + * needs of ui-gtk.c but is not a general solution. + */ + if (fname == NULL) + return NULL; + + ret = NSCreateObjectFileImageFromFile(fname, &file); + if (ret != NSObjectFileImageSuccess) { return NULL; } + return (dll_handle)NSLinkModule(file, fname, NSLINKMODULE_OPTION_BINDNOW | NSLINKMODULE_OPTION_PRIVATE |