micro-optimize SKIP-FAST-SLOT-ACCESS-P
authorNikodemus Siivola <nikodemus@random-state.net>
Mon, 27 Aug 2007 15:31:36 +0000 (15:31 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Mon, 27 Aug 2007 15:31:36 +0000 (15:31 +0000)
* It's the only caller of SKIP-OPTIMIZE-SLOT-SLOT-VALUE-BY-CLASS-P, so
  inline the latter's body and remove the duplicate *BOOT-STATE* check
  and FIND-SLOT-DEFINITION call. Add FIXME due to apparent strangeness
  re existense of the slot definition.

src/pcl/vector.lisp
version.lisp-expr

index 4b7fcfe..a522458 100644 (file)
     (and (eq *boot-state* 'complete)
          (standard-class-p class)
          (not (eq class *the-class-t*)) ; shouldn't happen, though.
+         ;; FIXME: Is this really right? "Don't skip if there is
+         ;; no slot definition."
          (let ((slotd (find-slot-definition class slot-name)))
-           (and slotd (skip-optimize-slot-value-by-class-p class
-                                                           slot-name
-                                                           type))))))
-
-(defun skip-optimize-slot-value-by-class-p (class slot-name type)
-  (let ((slotd (find-slot-definition class slot-name)))
-    (and slotd
-         (eq *boot-state* 'complete)
-         (not (slot-accessor-std-p slotd type)))))
+           (and slotd
+                (not (slot-accessor-std-p slotd type)))))))
 
 (defmacro instance-read-internal (pv slots pv-offset default &optional kind)
   (unless (member kind '(nil :instance :class :default))
index ee9843f..1b48da7 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".)
-"1.0.9.2"
+"1.0.9.3"