]> gitweb.factorcode.org Git - factor.git/commitdiff
images.cocoa: work around broken limited-stream behavior
authorJoe Groff <arcata@gmail.com>
Sun, 27 Jun 2010 20:31:07 +0000 (13:31 -0700)
committerJoe Groff <arcata@gmail.com>
Sun, 27 Jun 2010 20:31:07 +0000 (13:31 -0700)
basis/images/cocoa/cocoa.factor

index 21507471385b5b167c178b7cbe59ea818a1fd4f7..1d71738904a2368ffb9ccf2a8f222ccfdb7f037b 100644 (file)
@@ -1,18 +1,18 @@
 ! (c)2010 Joe Groff bsd license
 USING: accessors alien.data cocoa cocoa.classes cocoa.messages
 combinators core-foundation.data core-graphics.types fry images
-images.loader io kernel literals ;
+images.loader io io.streams.limited kernel literals ;
 IN: images.cocoa
 
 SINGLETON: ns-image
-"png" ns-image register-image-class
-"tif" ns-image register-image-class
-"tiff" ns-image register-image-class
-"gif" ns-image register-image-class
-"jpg" ns-image register-image-class
-"jpeg" ns-image register-image-class
-"bmp" ns-image register-image-class
-"ico" ns-image register-image-class
+"png" ns-image register-image-class
+"tif" ns-image register-image-class
+"tiff" ns-image register-image-class
+"gif" ns-image register-image-class
+"jpg" ns-image register-image-class
+"jpeg" ns-image register-image-class
+"bmp" ns-image register-image-class
+"ico" ns-image register-image-class
 
 CONSTANT: NSImageRepLoadStatusUnknownType     -1
 CONSTANT: NSImageRepLoadStatusReadingHeader   -2
@@ -61,4 +61,6 @@ PRIVATE>
         f >>upside-down? ;
 
 M: ns-image stream>image
-    drop [ load-image-rep ] with-input-stream image-rep>image ;
+    drop
+    dup limited-stream? [ stream-eofs >>mode ] when
+    [ load-image-rep ] with-input-stream image-rep>image ;