diff --git a/compiler/ppc/parms.lisp b/compiler/ppc/parms.lisp index 3431ac9c112c7250d560e662a8439518d61379ce..e8e81e72e3557fa91c4dbd57266bc09c5c7e4095 100644 --- a/compiler/ppc/parms.lisp +++ b/compiler/ppc/parms.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman or slisp-group@cs.cmu.edu. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ppc/parms.lisp,v 1.16 2006/12/02 15:22:36 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ppc/parms.lisp,v 1.17 2008/09/05 22:03:12 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -270,9 +270,10 @@ :key-and-value :key-or-value + lisp::*gc-inhibit* + ;; Spare symbols. Rename these when you need to add some static ;; symbols and don't want to do a cross-compile. - spare-9 spare-8 spare-7 spare-6 diff --git a/compiler/sparc/parms.lisp b/compiler/sparc/parms.lisp index 9e883d90356179173ef6613f5a3e3ab7596a1310..875666ea07f057ed0df47035b1d91a71ba50b692 100644 --- a/compiler/sparc/parms.lisp +++ b/compiler/sparc/parms.lisp @@ -5,7 +5,7 @@ ;;; Carnegie Mellon University, and has been placed in the public domain. ;;; (ext:file-comment - "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/parms.lisp,v 1.54 2008/04/15 14:33:25 rtoy Exp $") + "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/parms.lisp,v 1.55 2008/09/05 22:03:12 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; @@ -329,10 +329,11 @@ :key-and-value :key-or-value + lisp::*gc-inhibit* + ;; Some spare static symbols. Useful for adding another static ;; symbol without having to do a cross-compile. Just rename one ;; of these to the desired name. - spare-9 spare-8 spare-7 spare-6 diff --git a/lisp/breakpoint.c b/lisp/breakpoint.c index 01b4345f505ea39973f1ee2b8a66c861d69a281b..d742b9807eff39b629298c833f7abaee23e0f3af 100644 --- a/lisp/breakpoint.c +++ b/lisp/breakpoint.c @@ -1,6 +1,6 @@ /* - $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/breakpoint.c,v 1.23 2008/09/05 13:12:03 rtoy Exp $ + $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/lisp/breakpoint.c,v 1.24 2008/09/05 22:03:12 rtoy Exp $ This code was written as part of the CMU Common Lisp project at Carnegie Mellon University, and has been placed in the public domain. @@ -326,8 +326,6 @@ handle_function_end_breakpoint(int signal, int subcode, os_context_t * scp) #endif } - funcall3(SymbolFunction(HANDLE_BREAKPOINT), offset, code, alloc_sap(scp)); - /* * Breakpoint handling done, so get the real LRA where we're * supposed to return to so we can return there. @@ -342,6 +340,21 @@ handle_function_end_breakpoint(int signal, int subcode, os_context_t * scp) if (codeptr->constants[KNOWN_RETURN_P_SLOT] == NIL) SC_REG(scp, reg_CODE) = lra; #endif + + { + lispobj saved_gc_inhibit; + +#ifdef GC_INHIBIT + saved_gc_inhibit = SymbolValue(GC_INHIBIT); + SetSymbolValue(GC_INHIBIT, T); +#endif + funcall3(SymbolFunction(HANDLE_BREAKPOINT), offset, code, alloc_sap(scp)); + +#ifdef GC_INHIBIT + SetSymbolValue(GC_INHIBIT, saved_gc_inhibit); +#endif + } + undo_fake_foreign_function_call(scp); return (void *) (lra - type_OtherPointer + sizeof(lispobj)); }