diff --git a/basis/compression/zlib/zlib-docs.factor b/basis/compression/zlib/zlib-docs.factor index bfe8c12ccd..edfcea9026 100644 --- a/basis/compression/zlib/zlib-docs.factor +++ b/basis/compression/zlib/zlib-docs.factor @@ -29,10 +29,10 @@ HELP: compressed-size HELP: uncompress { $values - { "compressed" compressed } + { "obj" { $or compressed byte-array } } { "byte-array" byte-array } } -{ $description "Uncompresses a compressed object, returning a byte-array of the underlying data." } ; +{ $description "Uncompresses, returning a byte-array of the underlying data." } ; ARTICLE: "compression.zlib" "Compression (ZLIB)" "The " { $vocab-link "compression.zlib" } " vocabulary provides support for ZLIB:" diff --git a/basis/compression/zlib/zlib.factor b/basis/compression/zlib/zlib.factor index 3baf8778e4..ab47565b0e 100644 --- a/basis/compression/zlib/zlib.factor +++ b/basis/compression/zlib/zlib.factor @@ -46,7 +46,7 @@ ERROR: zlib-failed n string ; GENERIC: uncompress ( obj -- byte-array ) -M: compressed uncompress ( compressed -- byte-array ) +M: compressed uncompress [ length>> [ dup underlying>> ] keep ulong @@ -63,6 +63,6 @@ M: compressed uncompress ( compressed -- byte-array ) 2drop ulong deref memory>byte-array ] with-destructors ; -M: byte-array uncompress ( byte-array -- byte-array ) +M: byte-array uncompress [ length 5 [0,b) [ 2^ * ] with map ] keep '[ _ (uncompress) ] attempt-all ;