aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman <[email protected]>1992-07-31 02:30:04 +0000
committerRichard M. Stallman <[email protected]>1992-07-31 02:30:04 +0000
commit3315a6a3a47cda493e7d95ce433498c7fc467609 (patch)
tree415090df8646196ec5074e50d5fa360ae4dc349a
parent643f763f7d8eaeec9d7a86c915fff68e010b4592 (diff)
*** empty log message ***
-rw-r--r--lisp/emacs-lisp/byte-opt.el26
1 files changed, 19 insertions, 7 deletions
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index 62a112debc..008a996732 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -604,7 +604,10 @@
(condition-case ()
(eval form)
(error form)))
- ((null (cdr (cdr form))) (nth 1 form))
+;;; It is not safe to delete the function entirely
+;;; (actually, it would be safe if we know the sole arg
+;;; is not a marker).
+;; ((null (cdr (cdr form))) (nth 1 form))
(t form)))
(defun byte-optimize-minus (form)
@@ -621,19 +624,27 @@
(numberp last))
(setq form (nconc (list '- (- (nth 1 form) last) (nth 2 form))
(delq last (copy-sequence (nthcdr 3 form))))))))
- (if (eq (nth 2 form) 0)
- (nth 1 form) ; (- x 0) --> x
+;;; It is not safe to delete the function entirely
+;;; (actually, it would be safe if we know the sole arg
+;;; is not a marker).
+;;; (if (eq (nth 2 form) 0)
+;;; (nth 1 form) ; (- x 0) --> x
(byte-optimize-predicate
(if (and (null (cdr (cdr (cdr form))))
(eq (nth 1 form) 0)) ; (- 0 x) --> (- x)
(cons (car form) (cdr (cdr form)))
- form))))
+ form))
+;;; )
+ )
(defun byte-optimize-multiply (form)
(setq form (byte-optimize-delay-constants-math form 1 '*))
;; If there is a constant in FORM, it is now the last element.
(cond ((null (cdr form)) 1)
- ((null (cdr (cdr form))) (nth 1 form))
+;;; It is not safe to delete the function entirely
+;;; (actually, it would be safe if we know the sole arg
+;;; is not a marker or if it appears in other arithmetic).
+;;; ((null (cdr (cdr form))) (nth 1 form))
((let ((last (car (reverse form))))
(cond ((eq 0 last) (list 'progn (cdr form)))
((eq 1 last) (delq 1 (copy-sequence form)))
@@ -659,8 +670,9 @@
(cons (/ (nth 1 form) last)
(byte-compile-butlast (cdr (cdr form)))))
last nil))))
- (cond ((null (cdr (cdr form)))
- (nth 1 form))
+ (cond
+;;; ((null (cdr (cdr form)))
+;;; (nth 1 form))
((eq (nth 1 form) 0)
(append '(progn) (cdr (cdr form)) '(0)))
((eq last -1)