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

Re: too many contacts? part IV, src



Hi,

The problem that you encountered was caused by the the automatic buffer
flushing in clx not padding out the request to the four byte boundary.
The following patch solves the problem.  You will need to touch buffer.lisp
to make sure that it is re-compiled after the bufmac.lisp file has be altered.

There may also be a problem with the following files as very similar code is
used to flush the buffer in each case.

graphics.lisp
image.lisp
text.lisp

Rod

-------------------------cut here----------------------------------

*** bufmac.lisp Wed Jan  4 22:50:29 1989
--- ../CLX.altered/bufmac.lisp  Sat Aug  5 18:08:36 1989
***************
*** 200,206 ****
         ;; Flush the buffer
         (when (and (index-plusp len)
                    (index> buffer-boffset (buffer-limit buffer)))
!          (setf (buffer-boffset buffer) buffer-boffset)
           (buffer-flush buffer)
           (setq buffer-boffset (buffer-boffset buffer))
           #+clx-overlapping-arrays
--- 200,206 ----
         ;; Flush the buffer
         (when (and (index-plusp len)
                    (index> buffer-boffset (buffer-limit buffer)))
!          (setf (buffer-boffset buffer) (lround buffer-boffset))
           (buffer-flush buffer)
           (setq buffer-boffset (buffer-boffset buffer))
           #+clx-overlapping-arrays