summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-02-06 07:50:34 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-02-06 07:50:34 +0900
commited1bf9aa809acfaa42deba222968224e6e9d7b3c (patch)
tree1f4b2bfb6dd7cb504e71868aac2691b97fa0bffa
parent2e564153acab3baa9967f63fe2c165433d4a4d6c (diff)
downloadmruby-ed1bf9aa809acfaa42deba222968224e6e9d7b3c.tar.gz
mruby-ed1bf9aa809acfaa42deba222968224e6e9d7b3c.zip
introduce mrb_str_new_lit() to create strings from C string litrals
-rw-r--r--include/mruby.h1
-rw-r--r--mrbgems/mruby-proc-ext/src/proc.c2
-rw-r--r--mrbgems/mruby-version/src/version.c8
-rw-r--r--src/gc.c10
-rw-r--r--src/print.c4
5 files changed, 13 insertions, 12 deletions
diff --git a/include/mruby.h b/include/mruby.h
index 461443518..4bd6a3706 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -252,6 +252,7 @@ void mrb_free(mrb_state*, void*);
mrb_value mrb_str_new(mrb_state *mrb, const char *p, size_t len);
mrb_value mrb_str_new_cstr(mrb_state*, const char*);
mrb_value mrb_str_new_static(mrb_state *mrb, const char *p, size_t len);
+#define mrb_str_new_lit(mrb, lit) mrb_str_new_static(mrb, (lit), sizeof(lit) - 1)
mrb_state* mrb_open(void);
mrb_state* mrb_open_allocf(mrb_allocf, void *ud);
diff --git a/mrbgems/mruby-proc-ext/src/proc.c b/mrbgems/mruby-proc-ext/src/proc.c
index 87d96a865..f27356bb7 100644
--- a/mrbgems/mruby-proc-ext/src/proc.c
+++ b/mrbgems/mruby-proc-ext/src/proc.c
@@ -34,7 +34,7 @@ static mrb_value
mrb_proc_inspect(mrb_state *mrb, mrb_value self)
{
struct RProc *p = mrb_proc_ptr(self);
- mrb_value str = mrb_str_new_cstr(mrb, "#<Proc:");
+ mrb_value str = mrb_str_new_lit(mrb, "#<Proc:");
mrb_str_concat(mrb, str, mrb_ptr_to_str(mrb, mrb_cptr(self)));
if (!MRB_PROC_CFUNC_P(p)) {
diff --git a/mrbgems/mruby-version/src/version.c b/mrbgems/mruby-version/src/version.c
index 313f55b7e..ce275d509 100644
--- a/mrbgems/mruby-version/src/version.c
+++ b/mrbgems/mruby-version/src/version.c
@@ -5,10 +5,10 @@
void
mrb_mruby_version_gem_init(mrb_state* mrb)
{
- mrb_define_global_const(mrb, "MRUBY_VERSION", mrb_str_new_cstr(mrb, MRUBY_VERSION));
- mrb_define_global_const(mrb, "MRUBY_RELEASE_DATE", mrb_str_new_cstr(mrb, MRUBY_RELEASE_DATE));
- mrb_define_global_const(mrb, "MRUBY_DESCRIPTION", mrb_str_new_cstr(mrb, MRUBY_DESCRIPTION));
- mrb_define_global_const(mrb, "MRUBY_COPYRIGHT", mrb_str_new_cstr(mrb, MRUBY_COPYRIGHT));
+ mrb_define_global_const(mrb, "MRUBY_VERSION", mrb_str_new_lit(mrb, MRUBY_VERSION));
+ mrb_define_global_const(mrb, "MRUBY_RELEASE_DATE", mrb_str_new_lit(mrb, MRUBY_RELEASE_DATE));
+ mrb_define_global_const(mrb, "MRUBY_DESCRIPTION", mrb_str_new_lit(mrb, MRUBY_DESCRIPTION));
+ mrb_define_global_const(mrb, "MRUBY_COPYRIGHT", mrb_str_new_lit(mrb, MRUBY_COPYRIGHT));
}
void
diff --git a/src/gc.c b/src/gc.c
index 16753f2a8..934dcee13 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -1338,7 +1338,7 @@ test_mrb_field_write_barrier(void)
puts("test_mrb_field_write_barrier");
mrb->is_generational_gc_mode = FALSE;
obj = mrb_basic_ptr(mrb_ary_new(mrb));
- value = mrb_basic_ptr(mrb_str_new_cstr(mrb, "value"));
+ value = mrb_basic_ptr(mrb_str_new_lit(mrb, "value"));
paint_black(obj);
paint_partial_white(mrb,value);
@@ -1380,7 +1380,7 @@ test_mrb_field_write_barrier(void)
{
puts("test_mrb_field_write_barrier_value");
obj = mrb_basic_ptr(mrb_ary_new(mrb));
- mrb_value value = mrb_str_new_cstr(mrb, "value");
+ mrb_value value = mrb_str_new_lit(mrb, "value");
paint_black(obj);
paint_partial_white(mrb, mrb_basic_ptr(value));
@@ -1429,12 +1429,12 @@ test_add_gray_list(void)
puts("test_add_gray_list");
change_gen_gc_mode(mrb, FALSE);
mrb_assert(mrb->gray_list == NULL);
- obj1 = mrb_basic_ptr(mrb_str_new_cstr(mrb, "test"));
+ obj1 = mrb_basic_ptr(mrb_str_new_lit(mrb, "test"));
add_gray_list(mrb, obj1);
mrb_assert(mrb->gray_list == obj1);
mrb_assert(is_gray(obj1));
- obj2 = mrb_basic_ptr(mrb_str_new_cstr(mrb, "test"));
+ obj2 = mrb_basic_ptr(mrb_str_new_lit(mrb, "test"));
add_gray_list(mrb, obj2);
mrb_assert(mrb->gray_list == obj2);
mrb_assert(mrb->gray_list->gcnext == obj1);
@@ -1462,7 +1462,7 @@ test_gc_gray_mark(void)
puts(" in MRB_TT_ARRAY");
obj_v = mrb_ary_new(mrb);
- value_v = mrb_str_new_cstr(mrb, "test");
+ value_v = mrb_str_new_lit(mrb, "test");
paint_gray(mrb_basic_ptr(obj_v));
paint_partial_white(mrb, mrb_basic_ptr(value_v));
mrb_ary_push(mrb, obj_v, value_v);
diff --git a/src/print.c b/src/print.c
index 30b983264..0be9a028f 100644
--- a/src/print.c
+++ b/src/print.c
@@ -59,7 +59,7 @@ mrb_show_version(mrb_state *mrb)
if (mrb_const_defined(mrb, mrb_obj_value(mrb->object_class), mrb_intern_lit(mrb, "MRUBY_DESCRIPTION"))) {
msg = mrb_const_get(mrb, mrb_obj_value(mrb->object_class), mrb_intern_lit(mrb, "MRUBY_DESCRIPTION"));
- msg = mrb_funcall(mrb, msg, "+", 1, mrb_str_new_cstr(mrb, "\n"));
+ msg = mrb_funcall(mrb, msg, "+", 1, mrb_str_new_lit(mrb, "\n"));
}
else {
msg = mrb_str_new(mrb, version_msg, sizeof(version_msg) - 1);
@@ -75,7 +75,7 @@ mrb_show_copyright(mrb_state *mrb)
if (mrb_const_defined(mrb, mrb_obj_value(mrb->object_class), mrb_intern_lit(mrb, "MRUBY_COPYRIGHT"))) {
msg = mrb_const_get(mrb, mrb_obj_value(mrb->object_class), mrb_intern_lit(mrb, "MRUBY_COPYRIGHT"));
- msg = mrb_funcall(mrb, msg, "+", 1, mrb_str_new_cstr(mrb, "\n"));
+ msg = mrb_funcall(mrb, msg, "+", 1, mrb_str_new_lit(mrb, "\n"));
}
else {
msg = mrb_str_new(mrb, copyright_msg, sizeof(copyright_msg) - 1);