mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-17 08:31:09 -08:00
Don't access other MPS objects in fix_comp_unit
This commit is contained in:
parent
525a9e5bce
commit
060ed640af
4 changed files with 30 additions and 6 deletions
|
|
@ -75,8 +75,12 @@ b die
|
|||
#settings set -- target.run-args --module-assertions --no-init-file --no-site-file --no-site-lisp -L ":." -l ert --eval "(setq treesit-extra-load-path '(\"/Users/gerd/.emacs.d/tree-sitter\"))" -l lisp/emacs-lisp/package-tests --batch --eval '(ert-run-tests-batch-and-exit (quote (not (or (tag :expensive-test) (tag :unstable) (tag :nativecomp)))))'
|
||||
|
||||
# Von Helmut:
|
||||
target create emacs
|
||||
command alias go process launch --tty --working-dir .
|
||||
settings set -- target.run-args -Q --eval '(progn (view-hello-file) (redisplay) (igc--collect) (forward-line))'
|
||||
#target create emacs
|
||||
#command alias go process launch --tty --working-dir .
|
||||
#settings set -- target.run-args -Q --eval '(progn (view-hello-file) (redisplay) (igc--collect) (forward-line))'
|
||||
|
||||
target create temacs
|
||||
settings set -- target.run-args --batch -l loadup --temacs=pbootstrap --bin-dest /Users/gerd/emacs/savannah/igc/nextstep/Emacs.app/Contents/MacOS/ --eln-dest /Users/gerd/emacs/savannah/igc/nextstep/Emacs.app/Contents/Frameworks/
|
||||
command alias go process launch --working-dir .
|
||||
|
||||
# end.
|
||||
|
|
|
|||
10
src/comp.c
10
src/comp.c
|
|
@ -5412,10 +5412,16 @@ load_comp_unit (struct Lisp_Native_Comp_Unit *comp_u, bool loading_dump,
|
|||
}
|
||||
|
||||
EMACS_INT d_vec_len = XFIXNUM (Flength (comp_u->data_vec));
|
||||
#ifdef HAVE_MPS
|
||||
comp_u->n_data_relocs = d_vec_len;
|
||||
#endif
|
||||
for (EMACS_INT i = 0; i < d_vec_len; i++)
|
||||
data_relocs[i] = AREF (comp_u->data_vec, i);
|
||||
|
||||
d_vec_len = XFIXNUM (Flength (comp_u->data_impure_vec));
|
||||
#ifdef HAVE_MPS
|
||||
comp_u->n_data_imp_relocs = d_vec_len;
|
||||
#endif
|
||||
for (EMACS_INT i = 0; i < d_vec_len; i++)
|
||||
data_imp_relocs[i] = AREF (comp_u->data_impure_vec, i);
|
||||
}
|
||||
|
|
@ -5444,6 +5450,10 @@ load_comp_unit (struct Lisp_Native_Comp_Unit *comp_u, bool loading_dump,
|
|||
EMACS_INT d_vec_len = XFIXNUM (Flength (data_ephemeral_vec));
|
||||
for (EMACS_INT i = 0; i < d_vec_len; i++)
|
||||
data_eph_relocs[i] = AREF (data_ephemeral_vec, i);
|
||||
# ifdef HAVE_MPS
|
||||
comp_u->data_eph_relocs = data_eph_relocs;
|
||||
comp_u->n_data_eph_relocs = d_vec_len;
|
||||
# endif
|
||||
}
|
||||
/* Executing this will perform all the expected environment
|
||||
modifications. */
|
||||
|
|
|
|||
|
|
@ -48,7 +48,11 @@ struct Lisp_Native_Comp_Unit
|
|||
/* STUFFS WE DO NOT DUMP!! */
|
||||
Lisp_Object *data_imp_relocs;
|
||||
# ifdef HAVE_MPS
|
||||
size_t n_data_imp_relocs;
|
||||
Lisp_Object *data_relocs;
|
||||
size_t n_data_relocs;
|
||||
Lisp_Object *data_eph_relocs;
|
||||
size_t n_data_eph_relocs;
|
||||
# endif
|
||||
bool loaded_once;
|
||||
bool load_ongoing;
|
||||
|
|
|
|||
12
src/igc.c
12
src/igc.c
|
|
@ -1592,14 +1592,19 @@ fix_comp_unit (mps_ss_t ss, struct Lisp_Native_Comp_Unit *u)
|
|||
IGC_FIX_CALL_FN (ss, struct Lisp_Vector, u, fix_vectorlike);
|
||||
if (u->data_imp_relocs)
|
||||
{
|
||||
size_t n = ASIZE (u->data_impure_vec);
|
||||
size_t n = u->n_data_imp_relocs;
|
||||
IGC_FIX12_NOBJS (ss, u->data_imp_relocs, n);
|
||||
}
|
||||
if (u->data_relocs)
|
||||
{
|
||||
size_t n = ASIZE (u->data_vec);
|
||||
size_t n = u->n_data_relocs;
|
||||
IGC_FIX12_NOBJS (ss, u->data_relocs, n);
|
||||
}
|
||||
if (u->data_eph_relocs)
|
||||
{
|
||||
size_t n = u->n_data_eph_relocs;
|
||||
IGC_FIX12_NOBJS (ss, u->data_eph_relocs, n);
|
||||
}
|
||||
}
|
||||
MPS_SCAN_END (ss);
|
||||
return MPS_RES_OK;
|
||||
|
|
@ -2279,8 +2284,9 @@ static void
|
|||
finalize_comp_unit (struct Lisp_Native_Comp_Unit *u)
|
||||
{
|
||||
unload_comp_unit (u);
|
||||
u->data_eph_relocs = NULL;
|
||||
u->data_imp_relocs = NULL;
|
||||
u->data_imp_relocs = NULL;
|
||||
u->data_relocs = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue