diff --git a/lib/deflate.js b/lib/deflate.js index 38635d7..7485539 100644 --- a/lib/deflate.js +++ b/lib/deflate.js @@ -28,8 +28,9 @@ var Z_DEFLATED = 8; // return sliced buffer, trying to avoid new objects creation and mem copy function sliceBuf(buf, size) { if (buf.length === size) { return buf; } - - return utils.typedOk() ? buf.subarray(0, size) : buf.slice(0, size); + if (utils.typedOk()) { return buf.subarray(0, size); } + buf.length = size; + return buf; } /** diff --git a/lib/inflate.js b/lib/inflate.js index 9715e10..ee3b486 100644 --- a/lib/inflate.js +++ b/lib/inflate.js @@ -10,8 +10,9 @@ var zstream = require('./zlib/zstream'); // return sliced buffer, trying to avoid new objects creation and mem copy function sliceBuf(buf, size) { if (buf.length === size) { return buf; } - - return utils.typedOk() ? buf.subarray(0, size) : buf.slice(0, size); + if (utils.typedOk()) { return buf.subarray(0, size); } + buf.length = size; + return buf; } /**