From c43d3acbfd2f70b8473dd663e9dc1e35f6a9f576 Mon Sep 17 00:00:00 2001 From: Lucas Bajolet Date: Fri, 14 Aug 2015 13:32:50 -0400 Subject: [PATCH] lib/standard/bytes: Modified implementation of `to_bytes` in Text and added append Signed-off-by: Lucas Bajolet --- lib/standard/bytes.nit | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/lib/standard/bytes.nit b/lib/standard/bytes.nit index 52e3b21..59c4c5f 100644 --- a/lib/standard/bytes.nit +++ b/lib/standard/bytes.nit @@ -249,21 +249,23 @@ redef class Text # ~~~ fun to_bytes: Bytes do var b = new Bytes.with_capacity(bytelen) + append_to_bytes b + return b + end + + # Appends `self.bytes` to `b` + fun append_to_bytes(b: Bytes) do for s in substrings do var from = if s isa FlatString then s.first_byte else 0 b.append_ns_from(s.items, s.bytelen, from) end - return b end end redef class FlatText - redef fun to_bytes do - var len = bytelen - var b = new Bytes.with_capacity(len) + redef fun append_to_bytes(b) do var from = if self isa FlatString then first_byte else 0 - b.append_ns_from(items, len, from) - return b + b.append_ns_from(items, bytelen, from) end end -- 1.7.9.5