From 3800527d2079ef97d17113ddb544f629fb4bc64e Mon Sep 17 00:00:00 2001 From: Lucas Bajolet Date: Mon, 2 Nov 2015 17:04:22 -0500 Subject: [PATCH] core/flat: Fix bug in `FlatBuffer::substring` Signed-off-by: Lucas Bajolet --- lib/core/text/flat.nit | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/lib/core/text/flat.nit b/lib/core/text/flat.nit index c89b222..d58aafb 100644 --- a/lib/core/text/flat.nit +++ b/lib/core/text/flat.nit @@ -878,18 +878,15 @@ class FlatBuffer assert count >= 0 if from < 0 then from = 0 if (from + count) > length then count = length - from - if count != 0 then - var its = _items - var bytefrom = its.char_to_byte_index(from) - var byteto = its.char_to_byte_index(count + from - 1) - byteto += its.char_at(byteto).u8char_len - 1 - var byte_length = byteto - bytefrom + 1 - var r_items = new NativeString(byte_length) - its.copy_to(r_items, byte_length, bytefrom, 0) - return new FlatBuffer.with_infos(r_items, byte_length, byte_length, count) - else - return new Buffer - end + if count <= 0 then return new Buffer + var its = _items + var bytefrom = its.char_to_byte_index(from) + var byteto = its.char_to_byte_index(count + from - 1) + byteto += its.char_at(byteto).u8char_len - 1 + var byte_length = byteto - bytefrom + 1 + var r_items = new NativeString(byte_length) + its.copy_to(r_items, byte_length, bytefrom, 0) + return new FlatBuffer.with_infos(r_items, byte_length, byte_length, count) end redef fun reverse -- 1.7.9.5