* error.c (rb_check_type): rejects typed data.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2009-07-08 10:10:28 +00:00
parent abbd115cae
commit a7c32bf81d
2 changed files with 7 additions and 1 deletions

View File

@ -1,3 +1,7 @@
Wed Jul 8 19:10:22 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* error.c (rb_check_type): rejects typed data.
Wed Jul 8 18:28:04 2009 Nobuyoshi Nakada <nobu@ruby-lang.org>
* proc.c ({proc,binding,method}_data_type): typed.

View File

@ -282,12 +282,14 @@ rb_check_type(VALUE x, int t)
const struct types *type = builtin_types;
const struct types *const typeend = builtin_types +
sizeof(builtin_types) / sizeof(builtin_types[0]);
int xt;
if (x == Qundef) {
rb_bug("undef leaked to the Ruby space");
}
if (TYPE(x) != t) {
xt = TYPE(x);
if (xt != t || (xt == T_DATA && RTYPEDDATA_P(x))) {
while (type < typeend) {
if (type->type == t) {
const char *etype;