From 03a877205e9a5df6e74bee49ea5c280b82a4493f Mon Sep 17 00:00:00 2001 From: matz Date: Wed, 21 Oct 2009 20:17:27 +0000 Subject: * object.c (rb_obj_inspect): print instance variables only when Object#to_s is not overridden. [ruby-core:24425] * class.c (rb_obj_basic_to_s_p): new function. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@25428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- class.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'class.c') diff --git a/class.c b/class.c index 865197b84..0f4394d97 100644 --- a/class.c +++ b/class.c @@ -1257,6 +1257,16 @@ rb_define_attr(VALUE klass, const char *name, int read, int write) rb_attr(klass, rb_intern(name), read, write, FALSE); } +int +rb_obj_basic_to_s_p(obj) +{ + const rb_method_entry_t *me = rb_method_entry(CLASS_OF(obj), rb_intern("to_s")); + if (me && me->def && me->def->type == VM_METHOD_TYPE_CFUNC && + me->def->body.cfunc.func == rb_any_to_s) + return 1; + return 0; +} + #include int -- cgit