emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] nick.lloyd-bytecode-jit 5d8f254 2/3: ; Fix errors introduc


From: Nickolas Lloyd
Subject: [Emacs-diffs] nick.lloyd-bytecode-jit 5d8f254 2/3: ; Fix errors introduced during merge.
Date: Thu, 2 Feb 2017 03:33:00 +0000 (UTC)

branch: nick.lloyd-bytecode-jit
commit 5d8f2548ceaa5a0b33c08a39f1d6c11071ec63aa
Author: Nickolas Lloyd <address@hidden>
Commit: Nickolas Lloyd <address@hidden>

    ; Fix errors introduced during merge.
---
 src/bytecode-jit.c |   14 ++------------
 src/bytecode.c     |   22 ----------------------
 src/lisp.h         |    6 ------
 3 files changed, 2 insertions(+), 40 deletions(-)

diff --git a/src/bytecode-jit.c b/src/bytecode-jit.c
index 974b6aa..f970833 100644
--- a/src/bytecode-jit.c
+++ b/src/bytecode-jit.c
@@ -287,9 +287,7 @@ jit_type_t native_unwind_protect_sig;
 static void
 native_unwind_protect (Lisp_Object handler)
 {
-  record_unwind_protect (NILP (Ffunctionp (handler))
-                        ? unwind_body : bcall0,
-                        handler);
+  record_unwind_protect (FUNCTIONP (handler) ? bcall0 : prog_ignore, handler);
 }
 
 jit_type_t native_temp_output_buffer_setup_sig;
@@ -668,17 +666,9 @@ jit_exec (Lisp_Object byte_code, Lisp_Object 
args_template, ptrdiff_t nargs, Lis
     }
 
   {
-    /* We don't actually need to use this structure to keep track of a
-       stack, since our stack isn't GCed.  We just need to use it as a
-       placeholder in `byte_stack_list' to facilitate proper unwinding. */
-    struct byte_stack stack = {};
-    stack.next = byte_stack_list;
-    byte_stack_list = &stack;
     Lisp_Object (*func)(Lisp_Object *) =
       (void *)AREF (byte_code, COMPILED_JIT_CLOSURE);
-    Lisp_Object ret = func (top);
-    byte_stack_list = byte_stack_list->next;
-    return ret;
+    return func (top);
   }
 }
 
diff --git a/src/bytecode.c b/src/bytecode.c
index 02a3f70..88df30c 100644
--- a/src/bytecode.c
+++ b/src/bytecode.c
@@ -58,28 +58,6 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 #endif /* BYTE_CODE_METER */
 
 
-/* Relocate program counters in the stacks on byte_stack_list.  Called
-   when GC has completed.  */
-
-void
-relocate_byte_stack (struct byte_stack *stack)
-{
-  for (; stack; stack = stack->next)
-    {
-#ifdef HAVE_LIBJIT
-      if (!stack->byte_string_start)
-       continue;
-#endif
-      if (stack->byte_string_start != SDATA (stack->byte_string))
-       {
-         ptrdiff_t offset = stack->pc - stack->byte_string_start;
-         stack->byte_string_start = SDATA (stack->byte_string);
-         stack->pc = stack->byte_string_start + offset;
-       }
-    }
-}
-
-
 /* Fetch the next byte from the bytecode stream.  */
 
 #define FETCH (*pc++)
diff --git a/src/lisp.h b/src/lisp.h
index 0c444cc..a293359 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2777,11 +2777,6 @@ CHECK_COMPILED (Lisp_Object x)
 {
   CHECK_TYPE (COMPILEDP (x), Qcompiledp, x);
 }
-INLINE void
-CHECK_BOOL_VECTOR (Lisp_Object x)
-{
-  CHECK_TYPE (BOOL_VECTOR_P (x), Qbool_vector_p, x);
-}
 /* This is a bit special because we always need size afterwards.  */
 INLINE ptrdiff_t
 CHECK_VECTOR_OR_STRING (Lisp_Object x)
@@ -4173,7 +4168,6 @@ extern int read_bytecode_char (bool);
 
 /* Defined in bytecode.c.  */
 extern void syms_of_bytecode (void);
-extern void relocate_byte_stack (struct byte_stack *);
 extern Lisp_Object exec_byte_code (Lisp_Object, Lisp_Object, ptrdiff_t, 
Lisp_Object *);
 extern Lisp_Object get_byte_code_arity (Lisp_Object);
 



reply via email to

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