mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-01 20:30:28 +02:00
Fix case where running abort hook could trash registers
* libguile/vm-engine.c (abort): If the abort doesn't need to longjmp and the abort hook was enabled, cache registers first to avoid restoring a bad IP to the VM.
This commit is contained in:
parent
9505263fda
commit
1e7c541b2f
1 changed files with 5 additions and 2 deletions
|
@ -1118,14 +1118,17 @@ VM_NAME (scm_thread *thread)
|
|||
intervening C frames to jump over, so we just continue
|
||||
directly. */
|
||||
|
||||
CACHE_REGISTER ();
|
||||
ABORT_HOOK ();
|
||||
|
||||
#if ENABLE_JIT
|
||||
if (mcode && !VP->disable_mcode)
|
||||
{
|
||||
scm_jit_enter_mcode (thread, mcode);
|
||||
CACHE_REGISTER ();
|
||||
}
|
||||
#endif
|
||||
|
||||
CACHE_REGISTER ();
|
||||
NEXT (0);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue