[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Scoping of init-plist in initialize



I finally got our window system to compile (compilation is very slow under
excl3.0 beta!) and am getting to interesting problems.  It turns out
that (lacking a real init protocol) I have been playing close to the
edge under previous releases of pcl.  For example:

(defmethod INITIALIZE ((self NX-WS-CONNECTION) init-plist)
  (declare (special *window-server-connections*))
  (setf (getf init-plist :ws-connection) self)
  (setf (getf init-plist :root-canvas) self)
  (call-next-method)
  (nx-init-connection self)
  (cache-special-cursors SELF)
  (push self *window-server-connections*)
  )
;and in the very last inherited method
(defmethod initialize ((self region) init-plist)
  (ce:with-keys
    (location size x-origin y-origin width height) init-plist
    ;(call-next-method) doesn't pick up the augmented init-plist
    (pcl::initialize-from-defaults self)
    (pcl::initialize-from-init-plist self init-plist); but this did
    ...local key handling ...))

In any case by explicitly calling initialize-from-init-plist with
init-plist,  I was able to get my augmented plist info in the slots
and then use it in the ":after" part of a specialized method on the
way out. (hack, hack, hack ...)

In the new scheme my augmented init-plist isn't seen by any of the
call-next-method calls at all.  Is there any way to hack around this until
initialize gets fixed up?

Thanks,
Rob

  Robert C. Pettengill, MCC Software Technology Program
  P. O. Box 200195, Austin, Texas  78720
  ARPA:  rcp@mcc.com            PHONE:  (512) 338-3533
  UUCP:  {ihnp4,seismo,harvard,gatech,pyramid}!ut-sally!im4u!milano!rcp