Simplify smob and port marking; set the mark bit in the generic
[bpt/guile.git] / libguile / dynl.c
index 3c49151..5fd44e3 100644 (file)
@@ -45,6 +45,7 @@
    Author: Aubrey Jaffer
    Modified for libguile by Marius Vollmer */
 
+#if 0 /* Disabled until we know for sure that it isn't needed */
 /* XXX - This is only here to drag in a definition of __eprintf. This
    is needed for proper operation of dynamic linking. The real
    solution would probably be a shared libgcc. */
@@ -57,6 +58,7 @@ maybe_drag_in_eprintf ()
 {
   assert (!maybe_drag_in_eprintf);
 }
+#endif
 
 #include <stdio.h>
 #include "_scm.h"
@@ -114,8 +116,8 @@ scm_must_free_argv(argv)
      char **argv;
 {
     char **av = argv;
-    while(!(*av))
-       free(*(av++));
+    while (*av)
+      free(*(av++));
     free(argv);
 }
 
@@ -231,13 +233,13 @@ static void *sysdep_dynl_link SCM_P ((char *filename, char *subr));
 static void sysdep_dynl_unlink SCM_P ((void *handle, char *subr));
 static void *sysdep_dynl_func SCM_P ((char *symbol, void *handle, char *subr));
 
-#if defined (HAVE_LIBDL) || defined (HAVE_DLOPEN)
+#ifdef HAVE_DLOPEN
 #include "dynl-dl.c"
 #else
 #ifdef HAVE_SHL_LOAD
 #include "dynl-shl.c"
 #else
-#ifdef HAVE_DLD
+#ifdef HAVE_LIBDLD
 #include "dynl-dld.c"
 #else 
 
@@ -300,7 +302,6 @@ mark_dynl_obj (ptr)
      SCM ptr;
 {
     struct dynl_obj *d = (struct dynl_obj *)SCM_CDR (ptr);
-    SCM_SETGC8MARK (ptr);
     return d->filename;
 }