comparison 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
comparison
equal deleted inserted replaced
995:4575a219af58 996:25e260cb7994
2783 { 2783 {
2784 Dynarr_add (staticpros_nodump, varaddress); 2784 Dynarr_add (staticpros_nodump, varaddress);
2785 Dynarr_add (staticpro_nodump_names, varname); 2785 Dynarr_add (staticpro_nodump_names, varname);
2786 } 2786 }
2787 2787
2788 #ifdef HAVE_SHLIB
2789 /* Stop treating the Lisp_Object at non-heap VARADDRESS as a root object
2790 for garbage collection, but not for dumping. */
2791 void
2792 unstaticpro_nodump_1 (Lisp_Object *varaddress, char *varname)
2793 {
2794 Dynarr_delete_object (staticpros, varaddress);
2795 Dynarr_delete_object (staticpro_names, varname);
2796 }
2797 #endif
2798
2788 #else /* not DEBUG_XEMACS */ 2799 #else /* not DEBUG_XEMACS */
2789 2800
2790 Lisp_Object_ptr_dynarr *staticpros; 2801 Lisp_Object_ptr_dynarr *staticpros;
2791 2802
2792 /* Mark the Lisp_Object at non-heap VARADDRESS as a root object for 2803 /* Mark the Lisp_Object at non-heap VARADDRESS as a root object for
2821 void 2832 void
2822 staticpro_nodump (Lisp_Object *varaddress) 2833 staticpro_nodump (Lisp_Object *varaddress)
2823 { 2834 {
2824 Dynarr_add (staticpros_nodump, varaddress); 2835 Dynarr_add (staticpros_nodump, varaddress);
2825 } 2836 }
2837
2838 #ifdef HAVE_SHLIB
2839 /* Unmark the Lisp_Object at non-heap VARADDRESS as a root object for
2840 garbage collection, but not for dumping. */
2841 void
2842 unstaticpro_nodump (Lisp_Object *varaddress)
2843 {
2844 Dynarr_delete_object (staticpros, varaddress);
2845 }
2846 #endif
2826 2847
2827 #endif /* not DEBUG_XEMACS */ 2848 #endif /* not DEBUG_XEMACS */
2828 2849
2829 #ifdef ERROR_CHECK_GC 2850 #ifdef ERROR_CHECK_GC
2830 #define GC_CHECK_LHEADER_INVARIANTS(lheader) do { \ 2851 #define GC_CHECK_LHEADER_INVARIANTS(lheader) do { \