From: espen Date: Mon, 27 Oct 2008 18:39:30 +0000 (+0000) Subject: Fix for CLISP X-Git-Url: https://git.distorted.org.uk/~mdw/clg/commitdiff_plain/06ce78c6a6d9deb7639a2826847984b07d39cfc3 Fix for CLISP --- diff --git a/cairo/cairo.lisp b/cairo/cairo.lisp index c4d4f26..2a4d067 100644 --- a/cairo/cairo.lisp +++ b/cairo/cairo.lisp @@ -20,7 +20,7 @@ ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -;; $Id: cairo.lisp,v 1.22 2008-10-08 16:24:11 espen Exp $ +;; $Id: cairo.lisp,v 1.23 2008-10-27 18:39:30 espen Exp $ (in-package "CAIRO") @@ -875,16 +875,17 @@ (define-callback stream-read-func status ((stream-id pointer-data) (data pointer) (length unsigned-int)) - (let ((stream (find-user-data stream-id))) - (typecase stream - (stream - (loop for i below length do - (let ((byte (read-byte stream nil))) - (if byte - (setf (gffi::ref-uint-8 data i) byte) - (return-from stream-read-func :read-error))))) - ((or symbol function) (funcall stream data length)))) - :success) + (block stream-read + (let ((stream (find-user-data stream-id))) + (typecase stream + (stream + (loop for i below length do + (let ((byte (read-byte stream nil))) + (if byte + (setf (gffi::ref-uint-8 data i) byte) + (return-from stream-read :read-error))))) + ((or symbol function) (funcall stream data length)))) + :success)) (defmacro with-surface ((surface cr) &body body)