From c3f3a0484a7700c97a6ebe9ee7101b1ebe6b7626 Mon Sep 17 00:00:00 2001 From: take_cheeze Date: Sat, 8 Mar 2014 00:32:59 +0900 Subject: use sizeof(void*) instead of mrb_int size and extend embed string size --- include/mruby/string.h | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/include/mruby/string.h b/include/mruby/string.h index 7e7fb13d9..9ccbae56c 100644 --- a/include/mruby/string.h +++ b/include/mruby/string.h @@ -15,14 +15,7 @@ extern "C" { extern const char mrb_digitmap[]; -/* (sizeof(mrb_int)*2+sizeof(char*))/sizeof(char)-1 */ -#if defined(MRB_INT16) -# define RSTRING_EMBED_LEN_MAX 9 -#elif defined(MRB_INT64) -# define RSTRING_EMBED_LEN_MAX 15 -#else -# define RSTRING_EMBED_LEN_MAX 11 -#endif +#define RSTRING_EMBED_LEN_MAX (sizeof(void*) * 3 - 1) struct RString { MRB_OBJECT_HEADER; @@ -58,7 +51,7 @@ struct RString { #define MRB_STR_SHARED 1 #define MRB_STR_NOFREE 2 #define MRB_STR_EMBED 4 -#define MRB_STR_EMBED_LEN_MASK 120 +#define MRB_STR_EMBED_LEN_MASK 0xf8 #define MRB_STR_EMBED_LEN_SHIFT 3 void mrb_gc_free_str(mrb_state*, struct RString*); -- cgit v1.2.3