[comp.windows.x] CLX bug fix #42

RWS@ZERMATT.LCS.MIT.EDU (Robert Scheifler) (11/03/87)

    Date: Mon, 2 Nov 87 13:22:59 PST
    From: franz!ficl!jdi@ucbarpa.Berkeley.EDU (John)

    #1 is that you use *clx-cached-names* in clx.cl, which is loaded BEFORE
    dependent, where *clx-cached-names* is defined.

Oops.  I moved that [-types*, actually] from dependent.l to depdefs.l.

    #2 is that patch dies on the part of the bug fix for attributes.cl -- is this
    a good diff?

Yes, sorry, it's simply missing a final line:
--- 63,68 ----


Here's the diffs for #1:

*** lib/CLX/dependent.l.old	Tue Nov  3 07:45:05 1987
--- lib/CLX/dependent.l	Tue Nov  3 07:47:49 1987
***************
*** 840,869 ****
  	 (restore-gcontext-temp-state ,gc ,temp-mask ,temp-gc))
         (deallocate-gcontext-state ,saved-state))))
  
- 
- ;;;-------------------------------------------------------------------------
- ;;; CLX can maintain a mapping from X server ID's to local data types.  If
- ;;; one takes the view that CLX objects will be instance variables of
- ;;; objects at the next higher level, then PROCESS-EVENT will typically map
- ;;; from resource-id to higher-level object.  In that case, the lower-level
- ;;; CLX mapping will almost never be used (except in rare cases like
- ;;; query-tree), and only serve to consume space (which is difficult to
- ;;; GC), in which case always-consing versions of the make-<mumble>s will
- ;;; be better.  Even when maps are maintained, it isn't clear they are
- ;;; useful for much beyond xatoms and windows (since almost nothing else
- ;;; ever comes back in events).
- ;;;--------------------------------------------------------------------------
- (defconstant *clx-cached-types*
- 	     '( drawable
- 		window
- 		pixmap
- ;		gcontext
- 		cursor
- 		colormap
- 		font
- 		xatom))
- 
- 
  ;;; -----------------------------------------------------------------------------
  ;;; How error detection should CLX do?
  ;;; Several levels are possible:
--- 840,845 ----



*** lib/CLX/depdefs.l.old	Tue Nov  3 07:38:40 1987
--- lib/CLX/depdefs.l	Tue Nov  3 07:38:40 1987
***************
*** 20,25 ****
--- 20,47 ----
  
  (in-package "XLIB" :use '("LISP"))
  
+ ;;;-------------------------------------------------------------------------
+ ;;; CLX can maintain a mapping from X server ID's to local data types.  If
+ ;;; one takes the view that CLX objects will be instance variables of
+ ;;; objects at the next higher level, then PROCESS-EVENT will typically map
+ ;;; from resource-id to higher-level object.  In that case, the lower-level
+ ;;; CLX mapping will almost never be used (except in rare cases like
+ ;;; query-tree), and only serve to consume space (which is difficult to
+ ;;; GC), in which case always-consing versions of the make-<mumble>s will
+ ;;; be better.  Even when maps are maintained, it isn't clear they are
+ ;;; useful for much beyond xatoms and windows (since almost nothing else
+ ;;; ever comes back in events).
+ ;;;--------------------------------------------------------------------------
+ (defconstant *clx-cached-types*
+ 	     '( drawable
+ 		window
+ 		pixmap
+ ;		gcontext
+ 		cursor
+ 		colormap
+ 		font
+ 		xatom))
+ 
  ;;; ******* REMOVE THIS WHEN THE EXPLORER CAN PROCESS FUNCTION DECLARATIONS CORRECTLY *******
  ;;;Note that this is potentially dangerous because it also defines (typep foo 'function) to work when it shouldn't
  ;;;This is a small price to pay to get rid of all of those compiler warnings.