summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Katzman <dougk@google.com>2024-06-27 11:34:32 -0400
committerDouglas Katzman <dougk@google.com>2024-06-27 11:34:32 -0400
commitd9456f1fc178f06e47cb539004d5694887286d64 (patch)
treef4f086315071d003d1614f6b321d5775dfad3af8
parent13249668ad9754b948cd105be58fdf2fff50729c (diff)
Recognize permgen as GC-managed space
-rw-r--r--src/code/gc.lisp4
-rw-r--r--src/runtime/os-common.c3
2 files changed, 7 insertions, 0 deletions
diff --git a/src/code/gc.lisp b/src/code/gc.lisp
index 5c4702d00..6c46fcf25 100644
--- a/src/code/gc.lisp
+++ b/src/code/gc.lisp
@@ -531,6 +531,10 @@ Experimental: interface subject to change."
((< sb-vm:read-only-space-start addr
(sap-int sb-vm:*read-only-space-free-pointer*))
:read-only)
+ #+permgen
+ ((< sb-vm:permgen-space-start addr
+ (sap-int sb-vm:*permgen-space-free-pointer*))
+ :permgen)
;; Without immobile-space, the text range is
;; more-or-less an extension of static space.
#-immobile-space
diff --git a/src/runtime/os-common.c b/src/runtime/os-common.c
index 696209bcf..626d7f5bf 100644
--- a/src/runtime/os-common.c
+++ b/src/runtime/os-common.c
@@ -232,6 +232,9 @@ bool gc_managed_heap_space_p(lispobj addr)
|| (DYNAMIC_1_SPACE_START <= addr &&
addr < DYNAMIC_1_SPACE_START + dynamic_space_size)
#endif
+#ifdef LISP_FEATURE_PERMGEN
+ || (PERMGEN_SPACE_START <= addr && addr < (uword_t)permgen_space_free_pointer)
+#endif
#ifdef LISP_FEATURE_DARWIN_JIT
|| (STATIC_CODE_SPACE_START <= addr && addr < STATIC_CODE_SPACE_END)
#endif