From 162e72f4733d2abfdaf04338b8888cd115264a7e Mon Sep 17 00:00:00 2001 From: Lucas Bajolet Date: Wed, 8 Jul 2015 16:46:06 -0400 Subject: [PATCH] src: Compiler and interpreter updates for NativeString Signed-off-by: Lucas Bajolet --- src/compiler/abstract_compiler.nit | 2 +- src/interpreter/naive_interpreter.nit | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/compiler/abstract_compiler.nit b/src/compiler/abstract_compiler.nit index 605788a..9601c1d 100644 --- a/src/compiler/abstract_compiler.nit +++ b/src/compiler/abstract_compiler.nit @@ -2332,7 +2332,7 @@ redef class AMethPropdef end else if cname == "NativeString" then if pname == "[]" then - v.ret(v.new_expr("(uint32_t)(unsigned char){arguments[0]}[{arguments[1]}]", ret.as(not null))) + v.ret(v.new_expr("(unsigned char)((int){arguments[0]}[{arguments[1]}])", ret.as(not null))) return true else if pname == "[]=" then v.add("{arguments[0]}[{arguments[1]}]=(unsigned char){arguments[2]};") diff --git a/src/interpreter/naive_interpreter.nit b/src/interpreter/naive_interpreter.nit index c146d11..78bd4e2 100644 --- a/src/interpreter/naive_interpreter.nit +++ b/src/interpreter/naive_interpreter.nit @@ -277,7 +277,7 @@ class NaiveInterpreter do var instance = native_string_instance_len(txt.length+1) var val = instance.val - val[txt.length] = '\0' + val[txt.length] = 0u8 txt.to_cstring.copy_to(val, txt.length, 0, 0) return instance @@ -1041,10 +1041,10 @@ redef class AMethPropdef var recvval = args.first.val.as(NativeString) if pname == "[]" then var arg1 = args[1].to_i - return v.char_instance(recvval[arg1]) + return v.byte_instance(recvval[arg1]) else if pname == "[]=" then var arg1 = args[1].to_i - recvval[arg1] = args[2].val.as(Char) + recvval[arg1] = args[2].val.as(Byte) return null else if pname == "copy_to" then # sig= copy_to(dest: NativeString, length: Int, from: Int, to: Int) -- 1.7.9.5