summaryrefslogtreecommitdiffhomepage
path: root/mrbgems
diff options
context:
space:
mode:
authorHiroshi Mimaki <[email protected]>2019-10-23 15:44:21 +0900
committerHiroshi Mimaki <[email protected]>2019-10-23 15:44:21 +0900
commit4eb8fca14008222ad3f835c29678fa11ad2c06b5 (patch)
treefd05103a2e73accd33f28c4c48721f9a06b1cc59 /mrbgems
parent4c91adc4b209163f4609e308bf773c6833513b55 (diff)
parentfa85f91e0e3ebff7b2626bfcf550821445c064d7 (diff)
downloadmruby-4eb8fca14008222ad3f835c29678fa11ad2c06b5.tar.gz
mruby-4eb8fca14008222ad3f835c29678fa11ad2c06b5.zip
Merge branch 'master' into stable
Diffstat (limited to 'mrbgems')
-rw-r--r--mrbgems/mruby-io/mrblib/kernel.rb4
-rw-r--r--mrbgems/mruby-io/src/io.c17
-rw-r--r--mrbgems/mruby-string-ext/src/string.c4
3 files changed, 9 insertions, 16 deletions
diff --git a/mrbgems/mruby-io/mrblib/kernel.rb b/mrbgems/mruby-io/mrblib/kernel.rb
index 42d5bb1d1..9cb3b5650 100644
--- a/mrbgems/mruby-io/mrblib/kernel.rb
+++ b/mrbgems/mruby-io/mrblib/kernel.rb
@@ -28,8 +28,4 @@ module Kernel
def gets(*args)
$stdin.gets(*args)
end
-
- def getc(*args)
- $stdin.getc(*args)
- end
end
diff --git a/mrbgems/mruby-io/src/io.c b/mrbgems/mruby-io/src/io.c
index 624c27f47..3a6932b3a 100644
--- a/mrbgems/mruby-io/src/io.c
+++ b/mrbgems/mruby-io/src/io.c
@@ -284,12 +284,13 @@ mrb_io_alloc(mrb_state *mrb)
#endif
static int
-option_to_fd(mrb_state *mrb, mrb_value obj, const char *key)
+option_to_fd(mrb_state *mrb, mrb_value hash, const char *key)
{
- mrb_value opt = mrb_funcall(mrb, obj, "[]", 1, mrb_symbol_value(mrb_intern_static(mrb, key, strlen(key))));
- if (mrb_nil_p(opt)) {
- return -1;
- }
+ mrb_value opt;
+
+ if (!mrb_hash_p(hash)) return -1;
+ opt = mrb_hash_fetch(mrb, hash, mrb_symbol_value(mrb_intern_static(mrb, key, strlen(key))), mrb_nil_value());
+ if (mrb_nil_p(opt)) return -1;
switch (mrb_type(opt)) {
case MRB_TT_DATA: /* IO */
@@ -907,11 +908,7 @@ mrb_io_syswrite(mrb_state *mrb, mrb_value io)
}
mrb_get_args(mrb, "S", &str);
- if (!mrb_string_p(str)) {
- buf = mrb_funcall(mrb, str, "to_s", 0);
- } else {
- buf = str;
- }
+ buf = str;
if (fptr->fd2 == -1) {
fd = fptr->fd;
diff --git a/mrbgems/mruby-string-ext/src/string.c b/mrbgems/mruby-string-ext/src/string.c
index acf780005..ffad0f527 100644
--- a/mrbgems/mruby-string-ext/src/string.c
+++ b/mrbgems/mruby-string-ext/src/string.c
@@ -174,8 +174,8 @@ mrb_str_concat_m(mrb_state *mrb, mrb_value self)
str = int_chr_binary(mrb, str);
#endif
else
- str = mrb_ensure_string_type(mrb, str);
- mrb_str_concat(mrb, self, str);
+ mrb_ensure_string_type(mrb, str);
+ mrb_str_cat_str(mrb, self, str);
return self;
}