From: Nikodemus Siivola Date: Mon, 27 Aug 2007 15:31:36 +0000 (+0000) Subject: micro-optimize SKIP-FAST-SLOT-ACCESS-P X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=ff459a24452e30741ae24c40e895a1ad7353a5a9;p=sbcl.git micro-optimize SKIP-FAST-SLOT-ACCESS-P * 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. --- diff --git a/src/pcl/vector.lisp b/src/pcl/vector.lisp index 4b7fcfe..a522458 100644 --- a/src/pcl/vector.lisp +++ b/src/pcl/vector.lisp @@ -484,16 +484,11 @@ (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)) diff --git a/version.lisp-expr b/version.lisp-expr index ee9843f..1b48da7 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -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"