summaryrefslogtreecommitdiff
path: root/src/comp.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/comp.h')
-rw-r--r--src/comp.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/comp.h b/src/comp.h
index 36e7cdf4413..b8e40ceb900 100644
--- a/src/comp.h
+++ b/src/comp.h
@@ -52,7 +52,15 @@ struct Lisp_Native_Comp_Unit
/* STUFFS WE DO NOT DUMP!! */
Lisp_Object *data_imp_relocs;
bool loaded_once;
+
dynlib_handle_ptr handle;
+#ifdef WINDOWSNT
+ /* We need to store a copy of the original file name in memory that
+ is not subject to GC because the function to dispose native
+ compilation units is called by the GC. By that time the `file'
+ string may have been sweeped. */
+ char * cfile;
+#endif
};
#ifdef HAVE_NATIVE_COMP
@@ -83,6 +91,14 @@ extern void syms_of_comp (void);
extern void maybe_defer_native_compilation (Lisp_Object function_name,
Lisp_Object definition);
+
+extern void dispose_comp_unit (struct Lisp_Native_Comp_Unit * comp_unit, bool delay);
+
+extern void finish_delayed_disposal_of_comp_units (void);
+
+extern void dispose_all_remaining_comp_units (void);
+
+extern void clean_package_user_dir_of_old_comp_units (void);
#else
static inline void
@@ -92,6 +108,24 @@ maybe_defer_native_compilation (Lisp_Object function_name,
extern void syms_of_comp (void);
+static inline void
+dispose_comp_unit (struct Lisp_Native_Comp_Unit * comp_handle)
+{
+ eassert (false);
+}
+
+static inline void
+dispose_all_remaining_comp_units (void)
+{}
+
+static inline void
+clean_package_user_dir_of_old_comp_units (void)
+{}
+
+static inline void
+finish_delayed_disposal_of_comp_units (void)
+{}
+
#endif
#endif