diff options
| -rw-r--r-- | include/mruby/data.h | 6 | ||||
| -rw-r--r-- | src/object.c | 12 | ||||
| -rw-r--r-- | tasks/mruby_build_gem.rake | 2 |
3 files changed, 7 insertions, 13 deletions
diff --git a/include/mruby/data.h b/include/mruby/data.h index ed49393f7..6492fd6ea 100644 --- a/include/mruby/data.h +++ b/include/mruby/data.h @@ -28,10 +28,10 @@ struct RData *mrb_data_object_alloc(mrb_state *mrb, struct RClass* klass, void * #define Data_Wrap_Struct(mrb,klass,type,ptr)\ mrb_data_object_alloc(mrb,klass,ptr,type) -#define Data_Make_Struct(mrb,klass,strct,type,sval) (\ +#define Data_Make_Struct(mrb,klass,strct,type,sval,data) (\ sval = mrb_malloc(mrb, sizeof(strct)),\ - { static const strct zero = { 0 }; *sval = zero},\ - Data_Wrap_Struct(mrb,klass,type,sval)\ + { static const strct zero = { 0 }; *sval = zero; },\ + data = Data_Wrap_Struct(mrb,klass,type,sval)\ ) #define RDATA(obj) ((struct RData *)((obj).value.p)) diff --git a/src/object.c b/src/object.c index f8ebd44bc..cc8475cf1 100644 --- a/src/object.c +++ b/src/object.c @@ -10,6 +10,7 @@ #include <stdio.h> #include "mruby/class.h" #include "mruby/numeric.h" +#include "error.h" int mrb_obj_eq(mrb_state *mrb, mrb_value v1, mrb_value v2) @@ -443,16 +444,7 @@ mrb_value mrb_any_to_s(mrb_state *mrb, mrb_value obj) { const char *cname = mrb_obj_classname(mrb, obj); - size_t len; - mrb_value str; - struct RString *s; - - len = strlen(cname)+6+16; - str = mrb_str_new(mrb, 0, len); /* 6:tags 16:addr */ - s = mrb_str_ptr(str); - s->len = sprintf(s->ptr, "#<%s:0x%lx>", cname, (unsigned long)(obj.value.p)); - - return str; + return mrb_sprintf(mrb, "#<%s:%p>", cname, mrb_voidp(obj)); } /* diff --git a/tasks/mruby_build_gem.rake b/tasks/mruby_build_gem.rake index 80990773d..69dd4cafc 100644 --- a/tasks/mruby_build_gem.rake +++ b/tasks/mruby_build_gem.rake @@ -5,7 +5,9 @@ module MRuby gemrake = File.join(gemdir, "mrbgem.rake") fail "Can't find #{gemrake}" unless File.exists?(gemrake) + Gem.current = nil load gemrake + return nil unless Gem.current Gem.current.dir = gemdir Gem.current.build = MRuby::Build.current |
