diff options
| -rw-r--r-- | src/state.c | 9 | ||||
| -rw-r--r-- | tasks/mruby_build.rake | 8 |
2 files changed, 11 insertions, 6 deletions
diff --git a/src/state.c b/src/state.c index cab57a10c..ff0182f22 100644 --- a/src/state.c +++ b/src/state.c @@ -190,9 +190,9 @@ mrb_str_pool(mrb_state *mrb, mrb_value str) } else { ns->flags = 0; - if (s->flags & MRB_STR_EMBED) { + if (RSTR_EMBED_P(s)) { ptr = s->as.ary; - len = (mrb_int)((s->flags & MRB_STR_EMBED_LEN_MASK) >> MRB_STR_EMBED_LEN_SHIFT); + len = RSTR_EMBED_LEN(s); } else { ptr = s->as.heap.ptr; @@ -200,9 +200,8 @@ mrb_str_pool(mrb_state *mrb, mrb_value str) } if (len < RSTRING_EMBED_LEN_MAX) { - ns->flags |= MRB_STR_EMBED; - ns->flags &= ~MRB_STR_EMBED_LEN_MASK; - ns->flags |= (size_t)len << MRB_STR_EMBED_LEN_SHIFT; + RSTR_SET_EMBED_FLAG(ns); + RSTR_SET_EMBED_LEN(ns, len); if (ptr) { memcpy(ns->as.ary, ptr, len); } diff --git a/tasks/mruby_build.rake b/tasks/mruby_build.rake index 09175d533..06bb2a4e6 100644 --- a/tasks/mruby_build.rake +++ b/tasks/mruby_build.rake @@ -44,7 +44,7 @@ module MRuby include Rake::DSL include LoadGems attr_accessor :name, :bins, :exts, :file_separator, :build_dir, :gem_clone_dir - attr_reader :libmruby, :gems + attr_reader :libmruby, :gems, :toolchains attr_writer :enable_bintest COMPILERS = %w(cc cxx objc asm) @@ -84,6 +84,7 @@ module MRuby @build_mrbtest_lib_only = false @cxx_abi_enabled = false @cxx_exception_disabled = false + @toolchains = [] MRuby.targets[@name] = self end @@ -124,6 +125,11 @@ module MRuby tc = Toolchain.toolchains[name.to_s] fail "Unknown #{name} toolchain" unless tc tc.setup(self) + @toolchains.unshift name.to_s + end + + def primary_toolchain + @toolchains.first end def root |
