summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2012-12-19 14:36:14 -0800
committerYukihiro "Matz" Matsumoto <[email protected]>2012-12-19 14:36:14 -0800
commit6751715480858d587b860fcac7cbe0b87bd0bd5c (patch)
treef1929a2be8ce7b797a377a5c799b2c6d6e13133f
parentc02c264be2b1bc685f3c958f863d2a1c599f9ec8 (diff)
parent72ae2150c74359210e3e842f861d1dd66be464b6 (diff)
downloadmruby-6751715480858d587b860fcac7cbe0b87bd0bd5c.tar.gz
mruby-6751715480858d587b860fcac7cbe0b87bd0bd5c.zip
Merge pull request #649 from masamitsu-murase/fix_string_bytes
Modify String#bytes.
-rw-r--r--src/string.c2
-rw-r--r--test/t/string.rb5
2 files changed, 5 insertions, 2 deletions
diff --git a/src/string.c b/src/string.c
index ac79f7c58..dee383fab 100644
--- a/src/string.c
+++ b/src/string.c
@@ -2997,7 +2997,7 @@ mrb_str_bytes(mrb_state *mrb, mrb_value str)
{
struct RString *s = mrb_str_ptr(str);
mrb_value a = mrb_ary_new_capa(mrb, s->len);
- char *p = s->ptr, *pend = p + s->len;
+ unsigned char *p = (unsigned char *)(s->ptr), *pend = p + s->len;
while (p < pend) {
mrb_ary_push(mrb, a, mrb_fixnum_value(p[0]));
diff --git a/test/t/string.rb b/test/t/string.rb
index 1e921c668..05a610e00 100644
--- a/test/t/string.rb
+++ b/test/t/string.rb
@@ -369,7 +369,10 @@ assert('String#bytes') do
str1 = "hello"
bytes1 = [104, 101, 108, 108, 111]
- str1.bytes == bytes1
+ str2 = "\xFF"
+ bytes2 = [0xFF]
+
+ str1.bytes == bytes1 and str2.bytes == bytes2
end
assert('String#each_byte') do