[cells-cvs] CVS cells
ktilton
ktilton at common-lisp.net
Thu May 4 21:25:12 UTC 2006
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
More information about the Cells-cvs
mailing list