;;; -*- Mode: Common-Lisp; Package: User; Base: 10.; Patch-File: T -*-
;;; Written 02/14/90 16:32:14 by ab,
;;; Reason: Added sanity check to WINDOW :DISPOSE method.  2/14/90.
;;; while running on RAMP-4 from band N214
;;; With SYSTEM 6.30, GC 6.3, VIRTUAL-MEMORY 6.3, MICRONET 6.0, MICRONET-COMM 6.2,
;;;  DISK-IO 6.2, DISK-LABEL 6.0, BASIC-PATHNAME 6.3, MAC-PATHNAME 6.0, NETWORK-SUPPORT-COLD 6.2,
;;;  BASIC-NAMESPACE 6.7, BASIC-FILE 6.7, RPC 6.2, NFS-MX 6.4, EH 6.6, MAKE-SYSTEM 6.2,
;;;  MEMORY-AUX 6.0, COMPILER 6.14, TV 6.23, NVRAM 6.2, UCL 6.0, INPUT-EDITOR 6.0,
;;;  MACTOOLBOX 2.13, METER 6.1, ZWEI 6.12, DEBUG-TOOLS 6.4, WINDOW-MX 6.10, PRINTER 6.3,
;;;  MAC-PRINTER-TYPES 6.1, CLIPBOARD 6.1, TI-CLOS 6.37, CLEH 6.5, NETWORK-PATHNAME 6.1,
;;;  NETWORK-NAMESPACE 6.1, DATALINK 6.0, CHAOSNET 6.5, NETWORK-SUPPORT 6.1, NETWORK-SERVICE 6.2,
;;;  DATALINK-DISPLAYS 6.0, MX-DATALINK 6.1, NAMESPACE-EDITOR 6.4, IP 3.57, NFS-MX-SERVER 6.0,
;;;  MX-SERIAL 6.1, PRINTER-TYPES 6.2, IMAGEN 6.1, MAIL-DAEMON 6.5, MAIL-READER 6.7,
;;;  TELNET 6.1, VT100 6.0, STREAMER-TAPE 6.5, DECNET 1.71, VISIDOC 6.7, PROFILE 6.2,
;;;  Experimental CONFLICT-RESOLUTION 37.0, Experimental SNRL 4.0, Experimental SNRL-ADD-ONS 1.0,
;;;  Experimental SST-WINDOWS 1.0, Experimental QUERY 1.0,  microcode 139, Band Name: Rel6+patches+SNRL (2/14/90)

#!C
; From file GENERIC-TOOLBOX-LIBRARY.LISP#> TOOLBOX-INTERFACE; Hotel:
#10R MACTOOLBOX#:
(COMPILER-LET ((*PACKAGE* (FIND-PACKAGE "MACTOOLBOX"))
                          (SI:*LISP-MODE* :COMMON-LISP)
                          (*READTABLE* SYS:COMMON-LISP-READTABLE)
                          (SI:*READER-SYMBOL-SUBSTITUTIONS* SYS::*COMMON-LISP-SYMBOL-SUBSTITUTIONS*))
  (COMPILER#:PATCH-SOURCE-FILE "SYS: TOOLBOX-INTERFACE; GENERIC-TOOLBOX-LIBRARY.#"


(defmethod (Window :dispose)(&aux win)
  (cond ((/= pointer 0)
	 (setq *mac-window-list*
	       (delete (SETF win (assoc pointer *mac-window-list*))
		       *mac-window-list*))
	 (UNLESS (EQ (SETF win (CDR win)) self)
	   (CERROR "continue--if you dare" (FORMAT nil "Attempt to dispose window ~a which is not on *MAC-WINDOW-LIST*" self)))  ; ab
	 (!DisposeWindow self)
	 (setq pointer 0)
	 t)
	(t (ferror nil "Attempt to dispose of a window with a zero pointer."))))
))
