0.9.4.79:
authorThiemo Seufer <ths@networkno.de>
Tue, 20 Sep 2005 09:12:21 +0000 (09:12 +0000)
committerThiemo Seufer <ths@networkno.de>
Tue, 20 Sep 2005 09:12:21 +0000 (09:12 +0000)
Don't call alloc_sap before fake_foreign_function_call is run,
because this will reset dynamic_space_free_pointer to the
original reg_ALLOC value from the signal context, so the next
(Lisp-side) allocation will overwrite the SAP object. This may
fix Bug #379 (at least partially).

src/runtime/breakpoint.c
version.lisp-expr

index cf829ad..4b3ee03 100644 (file)
@@ -134,10 +134,11 @@ static long compute_offset(os_context_t *context, lispobj code)
 
 void handle_breakpoint(int signal, siginfo_t* info, os_context_t *context)
 {
-    lispobj code, context_sap = alloc_sap(context);
+    lispobj code, context_sap;
 
     fake_foreign_function_call(context);
 
+    context_sap = alloc_sap(context);
     code = find_code(context);
 
     /* Don't disallow recursive breakpoint traps. Otherwise, we can't
@@ -186,11 +187,12 @@ void *handle_fun_end_breakpoint(int signal, siginfo_t *info,
 void *handle_fun_end_breakpoint(int signal, siginfo_t *info,
                                 os_context_t *context)
 {
-    lispobj code, context_sap = alloc_sap(context);
+    lispobj code, context_sap;
     struct code *codeptr;
 
     fake_foreign_function_call(context);
 
+    context_sap = alloc_sap(context);
     code = find_code(context);
     codeptr = (struct code *)native_pointer(code);
 
index 7bc45bf..b0c89e9 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.4.78"
+"0.9.4.79"