> > Looks right to me. > Many thanks for your review! >> @@ -940,10 +940,9 @@ #define DEFINE(name, value) [name] = &&insn_ ## name, >> } >> >> CASE (Bsave_restriction): >> - record_unwind_protect (save_restriction_restore, >> - save_restriction_save ()); >> - record_unwind_protect (narrowing_locks_restore, >> - narrowing_locks_save ()); >> + record_unwind_protect (save_restriction_and_narrowing_locks_restore, >> + Fcons (save_restriction_save (), >> + narrowing_locks_save ())); >> NEXT; > > Shouldn't the value returned by `save_restriction_save` include the > narrowing locks already? > > IOW rather than changing this `bytecode.c` code, the locks handling > should be "hidden" inside `save_restriction_restore` and > `save_restriction_save`, don't you think? > You mean, the attached patch? That's probably even better, indeed. (Again it passes make and make check, with and without native compilation.)