comparison lisp/prim/debug.el @ 171:929b76928fce r20-3b12

Import from CVS: tag r20-3b12
author cvs
date Mon, 13 Aug 2007 09:47:52 +0200
parents 3bb7ccffb0c0
children
comparison
equal deleted inserted replaced
170:98a42ee61975 171:929b76928fce
481 (mapcar 'cancel-debug-on-entry debug-function-list))) 481 (mapcar 'cancel-debug-on-entry debug-function-list)))
482 482
483 (defun debug-convert-byte-code (function) 483 (defun debug-convert-byte-code (function)
484 (let ((defn (symbol-function function))) 484 (let ((defn (symbol-function function)))
485 (if (not (consp defn)) 485 (if (not (consp defn))
486 ;; Assume a compiled code object. 486 ;; Assume a compiled-function object.
487 (let* ((contents (append defn nil)) 487 (let* ((body
488 (body 488 (list (list 'byte-code
489 (list (list 'byte-code (nth 1 contents) 489 (compiled-function-instructions defn)
490 (nth 2 contents) (nth 3 contents))))) 490 (compiled-function-constants defn)
491 (if (nthcdr 5 contents) 491 (compiled-function-stack-depth defn)))))
492 (setq body (cons (list 'interactive (nth 5 contents)) body))) 492 (if (compiled-function-interactive defn)
493 (if (nth 4 contents) 493 (setq body (cons (compiled-function-interactive defn) body)))
494 (if (compiled-function-doc-string defn)
494 ;; Use `documentation' here, to get the actual string, 495 ;; Use `documentation' here, to get the actual string,
495 ;; in case the compiled function has a reference 496 ;; in case the compiled function has a reference
496 ;; to the .elc file. 497 ;; to the .elc file.
497 (setq body (cons (documentation function) body))) 498 (setq body (cons (documentation function) body)))
498 (fset function (cons 'lambda (cons (car contents) body))))))) 499 (fset function (cons 'lambda (cons
500 (compiled-function-arglist defn)
501 body)))))))
499 502
500 (defun debug-on-entry-1 (function defn flag) 503 (defun debug-on-entry-1 (function defn flag)
501 (if (subrp defn) 504 (if (subrp defn)
502 (error "%s is a built-in function" function) 505 (error "%s is a built-in function" function)
503 (if (eq (car defn) 'macro) 506 (if (eq (car defn) 'macro)