1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-18 08:51:45 -08:00

finalize_obarray

This commit is contained in:
Gerd Möllmann 2024-04-18 20:12:20 +02:00
parent 46ec734de0
commit b586ee1b4c
2 changed files with 47 additions and 7 deletions

View file

@ -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 ./textmodes ./url ./use-package ./vc
command alias go process launch --working-dir ../lisp
# end.

View file

@ -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;
}
}