[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
scratch/igc b586ee1b4cd: finalize_obarray
From: |
Gerd Moellmann |
Subject: |
scratch/igc b586ee1b4cd: finalize_obarray |
Date: |
Thu, 18 Apr 2024 14:13:10 -0400 (EDT) |
branch: scratch/igc
commit b586ee1b4cd0744cd4116c24cc71b58857a1cd49
Author: Gerd Möllmann <gerd@gnu.org>
Commit: Gerd Möllmann <gerd@gnu.org>
finalize_obarray
---
src/.lldbinit | 9 ++++++---
src/igc.c | 45 +++++++++++++++++++++++++++++++++++++++++----
2 files changed, 47 insertions(+), 7 deletions(-)
diff --git a/src/.lldbinit b/src/.lldbinit
index 3f4f59be531..14bbc003d18 100644
--- a/src/.lldbinit
+++ b/src/.lldbinit
@@ -65,9 +65,12 @@ b die
#process handle -p true -s false SIGSEGV
#process handle -p true -s false SIGBUS
-target create temacs
-settings set -- target.run-args --batch -l loadup --temacs=pbootstrap
--bin-dest --eln-dest
-command alias go process launch --working-dir .
+#target create temacs
+#settings set -- target.run-args --batch -l loadup --temacs=pbootstrap
--bin-dest --eln-dest
+#command alias go process launch --working-dir .
+target create bootstrap-emacs
+settings set -- target.run-args -batch --no-site-file --no-site-lisp -l
./emacs-lisp/loaddefs-gen.elc -f loaddefs-generate--emacs-batch . ./calc
./calendar ./cedet ./cedet/ede ./cedet/semantic ./cedet/semantic/analyze
./cedet/semantic/bovine ./cedet/semantic/decorate ./cedet/semantic/symref
./cedet/semantic/wisent ./cedet/srecode ./emacs-lisp ./emulation ./erc ./eshell
./gnus ./image ./international ./language ./leim ./leim/quail ./mail ./mh-e
./net ./nxml ./org ./play ./progmodes ./text [...]
+command alias go process launch --working-dir ../lisp
# end.
diff --git a/src/igc.c b/src/igc.c
index 0026fa31cb3..13ea2194a76 100644
--- a/src/igc.c
+++ b/src/igc.c
@@ -1445,7 +1445,8 @@ fix_obarray (mps_ss_t ss, struct Lisp_Obarray *o)
{
MPS_SCAN_BEGIN (ss)
{
- IGC_FIX12_NOBJS (ss, o->buckets, obarray_size (o));
+ if (o->buckets)
+ IGC_FIX12_NOBJS (ss, o->buckets, obarray_size (o));
}
MPS_SCAN_END (ss);
return MPS_RES_OK;
@@ -1919,6 +1920,17 @@ finalize_hash_table (struct Lisp_Hash_Table *h)
}
}
+static void
+finalize_obarray (struct Lisp_Obarray *o)
+{
+ if (o->buckets)
+ {
+ void *b = o->buckets;
+ o->buckets = NULL;
+ xfree (b);
+ }
+}
+
static void
finalize_bignum (struct Lisp_Bignum *n)
{
@@ -2086,6 +2098,10 @@ finalize_vector (mps_addr_t v)
finalize_finalizer (v);
break;
+ case PVEC_OBARRAY:
+ finalize_obarray (v);
+ break;
+
case PVEC_SYMBOL_WITH_POS:
case PVEC_PROCESS:
case PVEC_RECORD:
@@ -2093,7 +2109,6 @@ finalize_vector (mps_addr_t v)
case PVEC_SQLITE:
case PVEC_TS_NODE:
case PVEC_NORMAL_VECTOR:
- case PVEC_OBARRAY:
case PVEC_WINDOW_CONFIGURATION:
case PVEC_BUFFER:
case PVEC_FRAME:
@@ -2139,7 +2154,7 @@ finalize (struct igc *gc, mps_addr_t base)
case IGC_OBJ_WEAK:
case IGC_OBJ_BLV:
case IGC_OBJ_LAST:
- igc_assert (!"not implemented");
+ igc_assert (!"finalize not implemented");
break;
case IGC_OBJ_VECTOR:
@@ -2167,10 +2182,32 @@ maybe_finalize (mps_addr_t client, enum pvec_type tag)
case PVEC_NATIVE_COMP_UNIT:
case PVEC_SUBR:
case PVEC_FINALIZER:
+ case PVEC_OBARRAY:
mps_finalize (global_igc->arena, &ref);
break;
- default:
+ case PVEC_NORMAL_VECTOR:
+ case PVEC_FREE:
+ case PVEC_MARKER:
+ case PVEC_OVERLAY:
+ case PVEC_SYMBOL_WITH_POS:
+ case PVEC_MISC_PTR:
+ case PVEC_PROCESS:
+ case PVEC_FRAME:
+ case PVEC_WINDOW:
+ case PVEC_BOOL_VECTOR:
+ case PVEC_BUFFER:
+ case PVEC_TERMINAL:
+ case PVEC_XWIDGET:
+ case PVEC_XWIDGET_VIEW:
+ case PVEC_OTHER:
+ case PVEC_WINDOW_CONFIGURATION:
+ case PVEC_TS_NODE:
+ case PVEC_SQLITE:
+ case PVEC_COMPILED:
+ case PVEC_CHAR_TABLE:
+ case PVEC_SUB_CHAR_TABLE:
+ case PVEC_RECORD:
break;
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- scratch/igc b586ee1b4cd: finalize_obarray,
Gerd Moellmann <=