diff src/alloc.c @ 996:25e260cb7994

[xemacs-hg @ 2002-09-10 15:27:02 by james] Enable unloading of dynamic modules. Create the first two internal XEmacs modules: LDAP and postgreSQL. Update the sample directory to contain a sample internal XEmacs module and a sample external XEmacs module. Improve support for autoloading modules. Make internal module code compile into the XEmacs binary if XEmacs is configured without module support. Make the internal module directories self-contained so that they can be distributed separately from XEmacs.
author james
date Tue, 10 Sep 2002 15:27:39 +0000
parents 7924b28c57a4
children 8b464283e891
line wrap: on
line diff
--- a/src/alloc.c	Mon Sep 09 21:53:43 2002 +0000
+++ b/src/alloc.c	Tue Sep 10 15:27:39 2002 +0000
@@ -2785,6 +2785,17 @@
   Dynarr_add (staticpro_nodump_names, varname);
 }
 
+#ifdef HAVE_SHLIB
+/* Stop treating the Lisp_Object at non-heap VARADDRESS as a root object
+   for garbage collection, but not for dumping. */
+void
+unstaticpro_nodump_1 (Lisp_Object *varaddress, char *varname)
+{
+  Dynarr_delete_object (staticpros, varaddress);
+  Dynarr_delete_object (staticpro_names, varname);
+}
+#endif
+
 #else /* not DEBUG_XEMACS */
 
 Lisp_Object_ptr_dynarr *staticpros;
@@ -2824,6 +2835,16 @@
   Dynarr_add (staticpros_nodump, varaddress);
 }
 
+#ifdef HAVE_SHLIB
+/* Unmark the Lisp_Object at non-heap VARADDRESS as a root object for
+   garbage collection, but not for dumping. */
+void
+unstaticpro_nodump (Lisp_Object *varaddress)
+{
+  Dynarr_delete_object (staticpros, varaddress);
+}
+#endif
+
 #endif /* not DEBUG_XEMACS */
 
 #ifdef ERROR_CHECK_GC