]> git.eshelyaron.com Git - emacs.git/commitdiff
; Store jit_function_t value instead of closure.
authorNickolas Lloyd <ultrageek.lloyd@gmail.com>
Sat, 31 Dec 2016 23:21:25 +0000 (18:21 -0500)
committerNickolas Lloyd <ultrageek.lloyd@gmail.com>
Sat, 31 Dec 2016 23:21:25 +0000 (18:21 -0500)
; * src/bytecode-jit.c (jit_byte_code__, jit_exec): Use the
    COMPILED_JIT_ID field for storing the jit_function_t value so that
    we can retrive the jit_context_t later for destruction.

src/bytecode-jit.c

index 60984478f33ebf2f5b7f8925ac6f7117e49d5da1..859df8b7c4288e42353a6517b313bb4b2918f904 100644 (file)
@@ -675,7 +675,7 @@ jit_exec (Lisp_Object byte_code, Lisp_Object args_template, ptrdiff_t nargs, Lis
     stack.next = byte_stack_list;
     byte_stack_list = &stack;
     Lisp_Object (*func)(Lisp_Object *) =
-      (Lisp_Object (*)(Lisp_Object *))AREF (byte_code, COMPILED_JIT_ID);
+      (Lisp_Object (*)(Lisp_Object *))jit_function_to_closure ((void *)AREF (byte_code, COMPILED_JIT_ID));
     Lisp_Object ret = func (top);
     byte_stack_list = byte_stack_list->next;
     return ret;
@@ -1588,7 +1588,7 @@ jit_byte_code__ (Lisp_Object byte_code)
     jit_context_build_end (ctxt.libjit_ctxt);
     if (err)
       emacs_abort ();
-    ASET (byte_code, COMPILED_JIT_ID, (Lisp_Object )jit_function_to_closure (ctxt.func));
+    ASET (byte_code, COMPILED_JIT_ID, (Lisp_Object )ctxt.func);
   }
 }