Mercurial > hg > xemacs-beta
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 { \ |