mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
Add classes as run-time descriptors of cl-structs.
* lisp/emacs-lisp/cl-preloaded.el (cl--struct-get-class): New function. (cl--make-slot-desc): New constructor. (cl--plist-remove, cl--struct-register-child): New functions. (cl-struct-define): Rewrite. (cl-structure-class, cl-structure-object, cl-slot-descriptor) (cl--class): New structs. (cl--struct-default-parent): Initialize it here. * lisp/emacs-lisp/cl-macs.el (cl--find-class): New macro. (cl-defsubst, cl--defsubst-expand, cl--sublis): Move before first use. (cl--struct-default-parent): New var. (cl-defstruct): Adjust to new representation of classes; add default parent. In accessors, signal `wrong-type-argument' rather than a generic error. (cl-struct-sequence-type, cl-struct-slot-info) (cl-struct-slot-offset): Rewrite. * lisp/emacs-lisp/cl-generic.el (cl--generic-struct-specializers) (cl-generic-generalizers): Rewrite. * src/alloc.c (purecopy): Handle hash-tables. * lisp/emacs-lisp/debug.el (debug--implement-debug-on-entry): Bind inhibit-debug-on-entry here... (debug): Instead of here. * lisp/emacs-lisp/macroexp.el (macroexp--debug-eager): New var. (internal-macroexpand-for-load): Use it. * lwlib/xlwmenu.c (pop_up_menu): Remove debugging code.
This commit is contained in:
parent
fd93edbb1c
commit
872481d9e2
10 changed files with 468 additions and 226 deletions
|
|
@ -106,10 +106,10 @@ This is to optimize `debugger-make-xrefs'.")
|
|||
"Non-nil if we expect to get back in the debugger soon.")
|
||||
|
||||
(defvar inhibit-debug-on-entry nil
|
||||
"Non-nil means that debug-on-entry is disabled.")
|
||||
"Non-nil means that `debug-on-entry' is disabled.")
|
||||
|
||||
(defvar debugger-jumping-flag nil
|
||||
"Non-nil means that debug-on-entry is disabled.
|
||||
"Non-nil means that `debug-on-entry' is disabled.
|
||||
This variable is used by `debugger-jump', `debugger-step-through',
|
||||
and `debugger-reenable' to temporarily disable debug-on-entry.")
|
||||
|
||||
|
|
@ -165,7 +165,6 @@ first will be printed into the backtrace buffer."
|
|||
;; Don't let these magic variables affect the debugger itself.
|
||||
(let ((last-command nil) this-command track-mouse
|
||||
(inhibit-trace t)
|
||||
(inhibit-debug-on-entry t)
|
||||
unread-command-events
|
||||
unread-post-input-method-events
|
||||
last-input-event last-command-event last-nonmenu-event
|
||||
|
|
@ -763,7 +762,8 @@ A call to this function is inserted by `debug-on-entry' to cause
|
|||
functions to break on entry."
|
||||
(if (or inhibit-debug-on-entry debugger-jumping-flag)
|
||||
nil
|
||||
(funcall debugger 'debug)))
|
||||
(let ((inhibit-debug-on-entry t))
|
||||
(funcall debugger 'debug))))
|
||||
|
||||
;;;###autoload
|
||||
(defun debug-on-entry (function)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue