From 11869a433b220a00b9a5fea41b7389bf9b39e398 Mon Sep 17 00:00:00 2001 From: Cremno Date: Wed, 6 Feb 2013 00:07:09 +0100 Subject: rewrote mrb_any_to_s use %p instead of %lx to prevent truncation and for consistency --- src/object.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) (limited to 'src') 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 #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)); } /* -- cgit v1.2.3