From: Will Newton <[email protected]>

dladdr does not set dlerror but returns zero on failure.
---
 gcl/o/cfun.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gcl/o/cfun.c b/gcl/o/cfun.c
index ed64430..593ee92 100644
--- a/gcl/o/cfun.c
+++ b/gcl/o/cfun.c
@@ -101,10 +101,10 @@ 
DEFUN("DLADDR",object,fSdladdr,SI,1,1,NONE,OI,OO,OO,OO,(fixnum ad),"") {
   Dl_info info;
   unsigned long u;
   const char *c;
+  int ret;
 
-  dlerror();
-  dladdr((void *)ad,&info);
-  if (dlerror())
+  ret = dladdr((void *)ad,&info);
+  if (ret == 0)
     FEerror("dladdr lookup failure on ~s",1,make_fixnum(ad));
   u=(unsigned long)info.dli_fbase;
   c=info.dli_fname;
-- 
1.9.3


_______________________________________________
Gcl-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/gcl-devel

Reply via email to