extra error checking in images.png
parent
7d39e51d9a
commit
4a8be006f0
|
@ -4,7 +4,7 @@ USING: accessors arrays checksums checksums.crc32 combinators
|
||||||
compression.inflate fry grouping images images.loader io
|
compression.inflate fry grouping images images.loader io
|
||||||
io.binary io.encodings.ascii io.encodings.string kernel locals
|
io.binary io.encodings.ascii io.encodings.string kernel locals
|
||||||
math math.bitwise math.ranges sequences sorting assocs
|
math math.bitwise math.ranges sequences sorting assocs
|
||||||
math.functions ;
|
math.functions math.order ;
|
||||||
QUALIFIED-WITH: bitstreams bs
|
QUALIFIED-WITH: bitstreams bs
|
||||||
IN: images.png
|
IN: images.png
|
||||||
|
|
||||||
|
@ -146,6 +146,8 @@ ERROR: unimplemented-interlace ;
|
||||||
: uncompress-bytes ( loading-png -- bitstream )
|
: uncompress-bytes ( loading-png -- bitstream )
|
||||||
[ inflate-data ] [ interlace-method>> ] bi reverse-interlace ;
|
[ inflate-data ] [ interlace-method>> ] bi reverse-interlace ;
|
||||||
|
|
||||||
|
ERROR: bad-filter n ;
|
||||||
|
|
||||||
:: raw-bytes ( loading-png -- array )
|
:: raw-bytes ( loading-png -- array )
|
||||||
loading-png uncompress-bytes :> bs
|
loading-png uncompress-bytes :> bs
|
||||||
loading-png width>> :> width
|
loading-png width>> :> width
|
||||||
|
@ -162,7 +164,7 @@ ERROR: unimplemented-interlace ;
|
||||||
] when
|
] when
|
||||||
|
|
||||||
height [
|
height [
|
||||||
8 bs bs:read
|
8 bs bs:read dup 0 4 between? [ bad-filter ] unless
|
||||||
count [ depth bs bs:read ] replicate swap prefix
|
count [ depth bs bs:read ] replicate swap prefix
|
||||||
8 bs bs:align
|
8 bs bs:align
|
||||||
] replicate
|
] replicate
|
||||||
|
|
Loading…
Reference in New Issue