* enumerator.c (inspect_enumerator): don't raise for uninitialized

enumerator.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27322 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2010-04-12 13:49:44 +00:00
parent a698c7bf72
commit 309077c9ae
2 changed files with 15 additions and 2 deletions

View File

@ -1,3 +1,8 @@
Mon Apr 12 22:48:47 2010 Tanaka Akira <akr@fsij.org>
* enumerator.c (inspect_enumerator): don't raise for uninitialized
enumerator.
Mon Apr 12 21:47:41 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
* LEGAL: separated the section for parse.c. contributed by Paul

View File

@ -725,11 +725,19 @@ enumerator_rewind(VALUE obj)
static VALUE
inspect_enumerator(VALUE obj, VALUE dummy, int recur)
{
struct enumerator *e = enumerator_ptr(obj);
const char *cname = rb_obj_classname(obj);
struct enumerator *e;
const char *cname;
VALUE eobj, str;
int tainted, untrusted;
TypedData_Get_Struct(obj, struct enumerator, &enumerator_data_type, e);
cname = rb_obj_classname(obj);
if (!e || e->obj == Qundef) {
return rb_sprintf("#<%s: uninitialized>", cname);
}
if (recur) {
str = rb_sprintf("#<%s: ...>", cname);
OBJ_TAINT(str);