diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2000-12-11 00:49:54 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2000-12-11 00:49:54 +0000 |
commit | 41fe2a2a03d91dc836a83bbd78190c36fd54541f (patch) | |
tree | c7354872f5ca50dbd180fa36ebb9d8ad3114376d /src/backend/port/dynloader/darwin.c | |
parent | 839de3c577d6ed67543aeff47c3adb2e7d7543da (diff) | |
download | postgresql-41fe2a2a03d91dc836a83bbd78190c36fd54541f.tar.gz postgresql-41fe2a2a03d91dc836a83bbd78190c36fd54541f.zip |
Darwin porting patches from Peter Bierman <bierman@apple.com>
Diffstat (limited to 'src/backend/port/dynloader/darwin.c')
-rw-r--r-- | src/backend/port/dynloader/darwin.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/backend/port/dynloader/darwin.c b/src/backend/port/dynloader/darwin.c index d45e4ad9eaf..6c149b9f55e 100644 --- a/src/backend/port/dynloader/darwin.c +++ b/src/backend/port/dynloader/darwin.c @@ -3,14 +3,14 @@ * available with a PostgreSQL-compatible license. Kudos Wilfredo * Sánchez <wsanchez@apple.com>. * - * $Header: /cvsroot/pgsql/src/backend/port/dynloader/darwin.c,v 1.3 2000/11/14 21:26:21 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/port/dynloader/darwin.c,v 1.4 2000/12/11 00:49:54 tgl Exp $ */ #include "postgres.h" #include <mach-o/dyld.h> #include "dynloader.h" -void *pg_dlopen(const char *filename) +void *pg_dlopen(char *filename) { NSObjectFileImage image; @@ -26,18 +26,26 @@ void pg_dlclose(void *handle) return; } -PGFunction pg_dlsym(void *handle, const char *funcname) +PGFunction pg_dlsym(void *handle, char *funcname) { NSSymbol symbol; char *symname = (char*)malloc(strlen(funcname)+2); sprintf(symname, "_%s", funcname); - symbol = NSLookupAndBindSymbol(symname); - free(symname); - return (PGFunction) NSAddressOfSymbol(symbol); + if (NSIsSymbolNameDefined(symname)) + { + symbol = NSLookupAndBindSymbol(symname); + free(symname); + return (PGFunction) NSAddressOfSymbol(symbol); + } + else + { + free(symname); + return (PGFunction)NULL; + } } -const char *pg_dlerror(void) +char *pg_dlerror(void) { return "no error message available"; } |