emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-26 1ad2903 1/2: Refer to bytecode constant vectors (


From: Paul Eggert
Subject: [Emacs-diffs] emacs-26 1ad2903 1/2: Refer to bytecode constant vectors (Bug#33014)
Date: Wed, 31 Oct 2018 00:17:38 -0400 (EDT)

branch: emacs-26
commit 1ad2903a48b682985a2bd0709ec05f67a1351a8e
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>

    Refer to bytecode constant vectors (Bug#33014)
    
    Backport from master.
    * src/bytecode.c (exec_byte_code): Save VECTOR into stack slot
    so that it survives GC.  The stack slot was otherwise unused,
    so this doesn’t cost us memory, only a store insn.
---
 src/bytecode.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bytecode.c b/src/bytecode.c
index e51f909..538cd4f 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -367,6 +367,7 @@ exec_byte_code (Lisp_Object bytestr, Lisp_Object vector, 
Lisp_Object maxdepth,
   SAFE_ALLOCA_LISP_EXTRA (stack_base, stack_items, bytestr_length);
   Lisp_Object *stack_lim = stack_base + stack_items;
   Lisp_Object *top = stack_base;
+  *top = vector; /* Ensure VECTOR survives GC (Bug#33014).  */
   memcpy (stack_lim, SDATA (bytestr), bytestr_length);
   void *void_stack_lim = stack_lim;
   unsigned char const *bytestr_data = void_stack_lim;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]