aboutsummaryrefslogtreecommitdiff
path: root/src/backend/port/dynloader/darwin.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2000-12-11 00:49:54 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2000-12-11 00:49:54 +0000
commit41fe2a2a03d91dc836a83bbd78190c36fd54541f (patch)
treec7354872f5ca50dbd180fa36ebb9d8ad3114376d /src/backend/port/dynloader/darwin.c
parent839de3c577d6ed67543aeff47c3adb2e7d7543da (diff)
downloadpostgresql-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.c22
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";
}