summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-03-09 03:16:28 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-03-09 03:16:28 +0900
commit4f27089b4ad915b7bda151a49694dcc8fbb4a2fc (patch)
tree1b245362973ffc134a277085ab29a924dcbac920
parent6423011986aca8e71508a8ffe6df823e44c196bd (diff)
parentbc663549eae0d16a2adb0cb0b1b68d34befe501c (diff)
downloadmruby-4f27089b4ad915b7bda151a49694dcc8fbb4a2fc.tar.gz
mruby-4f27089b4ad915b7bda151a49694dcc8fbb4a2fc.zip
Merge branch 'master' of github.com:mruby/mruby
-rw-r--r--include/mruby/value.h2
-rw-r--r--src/codegen.c2
-rw-r--r--src/hash.c4
-rw-r--r--src/numeric.c10
-rw-r--r--src/object.c4
-rw-r--r--src/string.c2
-rw-r--r--src/variable.c2
7 files changed, 14 insertions, 12 deletions
diff --git a/include/mruby/value.h b/include/mruby/value.h
index d51fbb7bc..a940aabb7 100644
--- a/include/mruby/value.h
+++ b/include/mruby/value.h
@@ -72,6 +72,8 @@ typedef short mrb_sym;
# define PRIo64 "I64o"
# define PRIx64 "I64x"
# define PRIX64 "I64X"
+# define INFINITY ((float)(DBL_MAX * DBL_MAX))
+# define NAN ((float)(INFINITY - INFINITY))
# else
# include <inttypes.h>
# endif
diff --git a/src/codegen.c b/src/codegen.c
index 700cfdbf8..71849f172 100644
--- a/src/codegen.c
+++ b/src/codegen.c
@@ -1915,7 +1915,7 @@ codegen(codegen_scope *s, node *tree, int val)
mrb_value fix = mrb_fixnum_value((intptr_t)tree);
mrb_value str = mrb_str_buf_new(mrb, 4);
- mrb_str_buf_cat(mrb, str, "$", 1);
+ mrb_str_cat_lit(mrb, str, "$");
mrb_str_buf_append(mrb, str, mrb_fixnum_to_str(mrb, fix, 10));
sym = new_sym(s, mrb_intern_str(mrb, str));
genop(s, MKOP_ABx(OP_GETGLOBAL, cursp(), sym));
diff --git a/src/hash.c b/src/hash.c
index 34cc15131..9fbec3fd8 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -676,14 +676,14 @@ inspect_hash(mrb_state *mrb, mrb_value hash, int recur)
str2 = mrb_inspect(mrb, kh_key(h,k));
mrb_str_append(mrb, str, str2);
- mrb_str_buf_cat(mrb, str, "=>", 2);
+ mrb_str_cat_lit(mrb, str, "=>");
str2 = mrb_inspect(mrb, kh_value(h,k));
mrb_str_append(mrb, str, str2);
mrb_gc_arena_restore(mrb, ai);
}
}
- mrb_str_buf_cat(mrb, str, "}", 1);
+ mrb_str_cat_lit(mrb, str, "}");
return str;
}
diff --git a/src/numeric.c b/src/numeric.c
index 5f23b2461..5d0269e00 100644
--- a/src/numeric.c
+++ b/src/numeric.c
@@ -304,8 +304,8 @@ flodivmod(mrb_state *mrb, mrb_float x, mrb_float y, mrb_float *divp, mrb_float *
mrb_float mod;
if (y == 0.0) {
- div = str_to_mrb_float("inf");
- mod = str_to_mrb_float("nan");
+ div = INFINITY;
+ mod = NAN;
}
else {
mod = fmod(x, y);
@@ -775,7 +775,7 @@ fix_mod(mrb_state *mrb, mrb_value x)
mrb_int mod;
if (mrb_fixnum(y) == 0) {
- return mrb_float_value(mrb, str_to_mrb_float("nan"));
+ return mrb_float_value(mrb, NAN);
}
fixdivmod(mrb, a, mrb_fixnum(y), 0, &mod);
return mrb_fixnum_value(mod);
@@ -805,8 +805,8 @@ fix_divmod(mrb_state *mrb, mrb_value x)
mrb_int div, mod;
if (mrb_fixnum(y) == 0) {
- return mrb_assoc_new(mrb, mrb_float_value(mrb, str_to_mrb_float("inf")),
- mrb_float_value(mrb, str_to_mrb_float("nan")));
+ return mrb_assoc_new(mrb, mrb_float_value(mrb, INFINITY),
+ mrb_float_value(mrb, NAN));
}
fixdivmod(mrb, mrb_fixnum(x), mrb_fixnum(y), &div, &mod);
return mrb_assoc_new(mrb, mrb_fixnum_value(div), mrb_fixnum_value(mod));
diff --git a/src/object.c b/src/object.c
index 2f14c5698..a2e18c807 100644
--- a/src/object.c
+++ b/src/object.c
@@ -440,11 +440,11 @@ mrb_any_to_s(mrb_state *mrb, mrb_value obj)
mrb_value str = mrb_str_buf_new(mrb, 20);
const char *cname = mrb_obj_classname(mrb, obj);
- mrb_str_buf_cat(mrb, str, "#<", 2);
+ mrb_str_cat_lit(mrb, str, "#<");
mrb_str_cat_cstr(mrb, str, cname);
mrb_str_cat_lit(mrb, str, ":");
mrb_str_concat(mrb, str, mrb_ptr_to_str(mrb, mrb_cptr(obj)));
- mrb_str_buf_cat(mrb, str, ">", 1);
+ mrb_str_cat_lit(mrb, str, ">");
return str;
}
diff --git a/src/string.c b/src/string.c
index 5f1f5b50b..3d3f084ca 100644
--- a/src/string.c
+++ b/src/string.c
@@ -2535,7 +2535,7 @@ mrb_str_inspect(mrb_state *mrb, mrb_value str)
continue;
}
}
- mrb_str_buf_cat(mrb, result, "\"", 1);
+ mrb_str_cat_lit(mrb, result, "\"");
return result;
}
diff --git a/src/variable.c b/src/variable.c
index c313a8f14..bfffb727f 100644
--- a/src/variable.c
+++ b/src/variable.c
@@ -596,7 +596,7 @@ mrb_obj_iv_inspect(mrb_state *mrb, struct RObject *obj)
const char *cn = mrb_obj_classname(mrb, mrb_obj_value(obj));
mrb_value str = mrb_str_buf_new(mrb, 30);
- mrb_str_buf_cat(mrb, str, "-<", 2);
+ mrb_str_cat_lit(mrb, str, "-<");
mrb_str_cat_cstr(mrb, str, cn);
mrb_str_cat_lit(mrb, str, ":");
mrb_str_concat(mrb, str, mrb_ptr_to_str(mrb, obj));