Update of /project/cells/cvsroot/cells In directory clnet:/tmp/cvs-serv14075
Modified Files: md-slot-value.lisp Log Message: Restore integrity wrapper on (setf md-slot-value)
--- /project/cells/cvsroot/cells/md-slot-value.lisp 2006/05/01 20:23:14 1.12 +++ /project/cells/cvsroot/cells/md-slot-value.lisp 2006/05/04 21:25:12 1.13 @@ -162,18 +162,7 @@ (when *defer-changes* (c-break "SETF of ~a must be deferred by wrapping code in WITH-INTEGRITY" c))
- (progn ;; with-integrity (:change) - ;; - ;; ok, we had a weird bug to find caused by a SETF being deferred unexpectedly. - ;; This was the gears Togl demo, setf-ing a display-list in the create callback. It got - ;; called within the dynamic scope of the ufb queue handler doing the :make-tk items. - ;; When contemplating a fix, it occurred to me that I had no idea what to return from - ;; (setf md-slot-value) if the core setf behavior got deferred. I concluded one could not - ;; sensibly impose integrity automatically here, as slick as that might seem. So callers - ;; will have to provide the with-integrity (:change... wrapper. Since SETF happens mostly - ;; in event handling callbacks, hopefully this will not be necesssary at all. A quck check - ;; of Celtk confirms this pattern. - ;; + (with-integrity (:change) (md-slot-value-assume c new-value nil))
;; new-value