Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo


Diff of /src/clos/std-slot-value.lsp [0f2688] .. [b2889a] Maximize Restore

  Switch to side-by-side view

--- a/src/clos/std-slot-value.lsp
+++ b/src/clos/std-slot-value.lsp
@@ -176,7 +176,7 @@
 	   (invalid-slot-location instance location)))))
-(defun standard-instance-set (val instance location)
+(defun standard-instance-set (instance location val)
   (with-early-accessors (+standard-class-slots+
     (ensure-up-to-date-instance instance)
@@ -189,6 +189,9 @@
 	   (invalid-slot-location instance location)))
+(defsetf standard-instance-access standard-instance-set)
+(defsetf funcallable-standard-instance-access standard-instance-set)
 (defun slot-value (self slot-name)
   (with-early-accessors (+standard-class-slots+
@@ -235,7 +238,7 @@
       (if location-table
 	  (let ((location (gethash slot-name location-table nil)))
 	    (if location
-		(standard-instance-set value self location)
+		(setf (standard-instance-access self location) value)
 		(slot-missing class self slot-name 'SETF value)))
 	  (let ((slotd (find slot-name (class-slots class) :key #'slot-definition-name)))
 	    (if slotd