fix: proper amortized O(1) push in Buf.push

This commit is contained in:
Simon Cruanes 2019-12-02 19:17:25 -06:00
parent 45bc589e00
commit 51519fec1f

View file

@ -41,7 +41,7 @@ module Buf_ = struct
let add_bytes (self:t) s i len : unit = let add_bytes (self:t) s i len : unit =
if self.i + len >= Bytes.length self.bytes then ( if self.i + len >= Bytes.length self.bytes then (
resize self (self.i + len + 10); resize self (self.i + self.i / 2 + len + 10);
); );
Bytes.blit s i self.bytes self.i len; Bytes.blit s i self.bytes self.i len;
self.i <- self.i + len self.i <- self.i + len