From 6204a91171a812eb7d6971e1792878156de323f7 Mon Sep 17 00:00:00 2001 From: Jean Privat Date: Tue, 18 Nov 2014 13:37:19 -0500 Subject: [PATCH] lib: remove class StringCapable Signed-off-by: Jean Privat --- .../strings/array_to_s_vars/array_to_s_manual.nit | 4 +-- lib/standard/string.nit | 32 ++++++++------------ lib/string_experimentations/utf8.nit | 12 ++++---- lib/string_experimentations/utf8_noindex.nit | 22 +++++++------- 4 files changed, 30 insertions(+), 40 deletions(-) diff --git a/benchmarks/strings/array_to_s_vars/array_to_s_manual.nit b/benchmarks/strings/array_to_s_vars/array_to_s_manual.nit index 843eb93..da6b667 100644 --- a/benchmarks/strings/array_to_s_vars/array_to_s_manual.nit +++ b/benchmarks/strings/array_to_s_vars/array_to_s_manual.nit @@ -21,8 +21,6 @@ redef class NativeArray[E] end redef class Array[E] - super StringCapable - redef fun to_s: String do var l = length var its = _items @@ -35,7 +33,7 @@ redef class Array[E] na[i] = tmp i += 1 end - var ns = calloc_string(sl + 1) + var ns = new NativeString(sl + 1) ns[sl] = '\0' i = 0 var off = 0 diff --git a/lib/standard/string.nit b/lib/standard/string.nit index 0ffb303..48cb238 100644 --- a/lib/standard/string.nit +++ b/lib/standard/string.nit @@ -30,7 +30,6 @@ intrude import collection::array # High-level abstraction for all text representations abstract class Text super Comparable - super StringCapable redef type OTHER: Text @@ -992,7 +991,7 @@ class FlatString redef fun reversed do - var native = calloc_string(self.length + 1) + var native = new NativeString(self.length + 1) var length = self.length var items = self.items var pos = 0 @@ -1030,7 +1029,7 @@ class FlatString redef fun to_upper do - var outstr = calloc_string(self.length + 1) + var outstr = new NativeString(self.length + 1) var out_index = 0 var myitems = self.items @@ -1050,7 +1049,7 @@ class FlatString redef fun to_lower do - var outstr = calloc_string(self.length + 1) + var outstr = new NativeString(self.length + 1) var out_index = 0 var myitems = self.items @@ -1095,7 +1094,7 @@ class FlatString if real_items != null then return real_items.as(not null) else - var newItems = calloc_string(length + 1) + var newItems = new NativeString(length + 1) self.items.copy_to(newItems, length, index_from, 0) newItems[length] = '\0' self.real_items = newItems @@ -1173,7 +1172,7 @@ class FlatString var total_length = my_length + its_length - var target_string = calloc_string(my_length + its_length + 1) + var target_string = new NativeString(my_length + its_length + 1) self.items.copy_to(target_string, my_length, index_from, 0) if s isa FlatString then @@ -1204,7 +1203,7 @@ class FlatString var my_items = self.items - var target_string = calloc_string((final_length) + 1) + var target_string = new NativeString(final_length + 1) target_string[final_length] = '\0' @@ -1502,7 +1501,7 @@ class FlatBuffer # The COW flag can be set at false here, since # it does a copy of the current `Buffer` written = false - var a = calloc_string(c+1) + var a = new NativeString(c+1) if length > 0 then items.copy_to(a, length, 0, 0) items = a capacity = c @@ -1518,7 +1517,7 @@ class FlatBuffer redef fun to_cstring do if is_dirty then - var new_native = calloc_string(length + 1) + var new_native = new NativeString(length + 1) new_native[length] = '\0' if length > 0 then items.copy_to(new_native, length, 0, 0) real_items = new_native @@ -1534,7 +1533,7 @@ class FlatBuffer do capacity = s.length + 1 length = s.length - items = calloc_string(capacity) + items = new NativeString(capacity) if s isa FlatString then s.items.copy_to(items, length, s.index_from, 0) else if s isa FlatBuffer then @@ -1554,7 +1553,7 @@ class FlatBuffer do assert cap >= 0 # _items = new NativeString.calloc(cap) - items = calloc_string(cap+1) + items = new NativeString(cap+1) capacity = cap length = 0 end @@ -1611,7 +1610,7 @@ class FlatBuffer redef fun reverse do written = false - var ns = calloc_string(capacity) + var ns = new NativeString(capacity) var si = length - 1 var ni = 0 var it = items @@ -1682,7 +1681,6 @@ end private class FlatBufferCharView super BufferCharView - super StringCapable redef type SELFTYPE: FlatBuffer @@ -2118,7 +2116,6 @@ end # Native strings are simple C char * extern class NativeString `{ char* `} - super StringCapable # Creates a new NativeString with a capacity of `length` new(length: Int) is intern fun [](index: Int): Char is intern @@ -2150,7 +2147,7 @@ extern class NativeString `{ char* `} fun to_s_with_copy: FlatString do var length = cstring_length - var new_self = calloc_string(length + 1) + var new_self = new NativeString(length + 1) copy_to(new_self, length, 0, 0) var str = new FlatString.with_infos(new_self, length, 0, length - 1) new_self[length] = '\0' @@ -2159,11 +2156,6 @@ extern class NativeString `{ char* `} end end -# StringCapable objects can create native strings -interface StringCapable - protected fun calloc_string(size: Int): NativeString is intern -end - redef class Sys private var args_cache: nullable Sequence[String] diff --git a/lib/string_experimentations/utf8.nit b/lib/string_experimentations/utf8.nit index 5feef35..b7a74ce 100644 --- a/lib/string_experimentations/utf8.nit +++ b/lib/string_experimentations/utf8.nit @@ -214,7 +214,7 @@ redef class FlatString redef fun to_cstring do if real_items != null then return real_items.as(not null) - var new_items = calloc_string(bytelen + 1) + var new_items = new NativeString(bytelen + 1) self.items.copy_to(new_items, bytelen, index[index_from].pos, 0) new_items[bytelen] = '\0' self.real_items = new_items @@ -245,7 +245,7 @@ redef class FlatString redef fun reversed do - var native = calloc_string(self.bytelen + 1) + var native = new NativeString(self.bytelen + 1) var length = self.length var index = self.index var pos = 0 @@ -278,7 +278,7 @@ redef class FlatString var my_real_len = length var my_real_fin_len = my_real_len * i - var target_string = calloc_string((finlen) + 1) + var target_string = new NativeString((finlen) + 1) var my_index = index var new_index = new StringIndex(my_real_fin_len) @@ -300,7 +300,7 @@ redef class FlatString redef fun to_upper do - var outstr = calloc_string(self.bytelen + 1) + var outstr = new NativeString(self.bytelen + 1) var out_index = 0 var index = self.index @@ -322,7 +322,7 @@ redef class FlatString redef fun to_lower do - var outstr = calloc_string(self.bytelen + 1) + var outstr = new NativeString(self.bytelen + 1) var out_index = 0 var index = self.index @@ -406,7 +406,7 @@ redef class NativeString var real_len = new Container[Int](0) var length = cstring_length var x = make_index(length, real_len) - var new_self = calloc_string(length + 1) + var new_self = new NativeString(length + 1) copy_to(new_self, length, 0, 0) return new FlatString.with_infos_index(new_self, real_len.item, 0, real_len.item - 1, x, length) end diff --git a/lib/string_experimentations/utf8_noindex.nit b/lib/string_experimentations/utf8_noindex.nit index c473a3c..db51f0a 100644 --- a/lib/string_experimentations/utf8_noindex.nit +++ b/lib/string_experimentations/utf8_noindex.nit @@ -401,7 +401,7 @@ redef class FlatString end redef fun reversed do - var new_str = calloc_string(bytelen) + var new_str = new NativeString(bytelen) var s_pos = bytelen var my_pos = index_from var its = items @@ -415,7 +415,7 @@ redef class FlatString end redef fun to_upper do - var ns = calloc_string(bytelen) + var ns = new NativeString(bytelen) var offset = 0 for i in [0 .. length[ do @@ -427,7 +427,7 @@ redef class FlatString end redef fun to_lower do - var ns = calloc_string(bytelen) + var ns = new NativeString(bytelen) var offset = 0 for i in [0 .. length[ do @@ -441,7 +441,7 @@ redef class FlatString redef fun +(o) do if o isa Buffer then o = o.to_s if o isa FlatString then - var new_str = calloc_string(bytelen + o.bytelen + 1) + var new_str = new NativeString(bytelen + o.bytelen + 1) var new_bytelen = bytelen + o.bytelen new_str[new_bytelen] = '\0' var newlen = length + o.length @@ -461,7 +461,7 @@ redef class FlatString var new_bytelen = mybtlen * i var mylen = length var newlen = mylen * i - var ns = calloc_string(new_bytelen + 1) + var ns = new NativeString(new_bytelen + 1) ns[new_bytelen] = '\0' var offset = 0 while i > 0 do @@ -499,7 +499,7 @@ redef class FlatString redef fun to_cstring do if real_items != null then return real_items.as(not null) - var new_items = calloc_string(bytelen + 1) + var new_items = new NativeString(bytelen + 1) self.items.copy_to(new_items, bytelen, index_from, 0) new_items[bytelen] = '\0' self.real_items = new_items @@ -523,7 +523,7 @@ redef class FlatBuffer with_capacity(50) for i in s.substrings do self.append(i) end - items = calloc_string(s.bytelen) + items = new NativeString(s.bytelen) if s isa FlatString then s.items.copy_to(items, s.bytelen, s.index_from, 0) else @@ -611,7 +611,7 @@ redef class FlatBuffer var c = capacity if cap <= c then return while c <= cap do c = c * 2 + 2 - var a = calloc_string(c+1) + var a = new NativeString(c+1) if bytelen > 0 then items.copy_to(a, bytelen, 0, 0) items = a capacity = c @@ -635,7 +635,7 @@ redef class FlatBuffer redef fun reverse do - var nns = calloc_string(bytelen) + var nns = new NativeString(bytelen) var ns = items var btlen = bytelen var myp = 0 @@ -701,7 +701,7 @@ redef class FlatBuffer end redef fun to_cstring do - var ns = calloc_string(bytelen) + var ns = new NativeString(bytelen) items.copy_to(ns, bytelen, 0, 0) return ns end @@ -723,7 +723,7 @@ redef class NativeString redef fun to_s_with_copy do var length = cstring_length - var new_self = calloc_string(length + 1) + var new_self = new NativeString(length + 1) copy_to(new_self, length, 0, 0) return new FlatString.with_bytelen(new_self, 0, length - 1, length) end -- 1.7.9.5