From: nobu.nokada@... Date: 2004-06-26T10:08:10+09:00 Subject: Re: class= and type checks when casting Hi, At Sat, 26 Jun 2004 04:51:40 +0900, Sean O'Dell wrote in [ruby-core:03090]: > Matz, I'm not sure if you followed the discussion in ruby-talk about having a > "class=" method. We were just talking about changing the class of an object, > and what problems would/would not arise in so doing. When I tried > implementing "class=" on my own, Ruby crashed pretty badly in a lot of > places. Then I realized the reason was because so much code casts VALUEs to > RFILE, RHASH, etc. without checking that the types were actually valid. So I > changed many of the casts in ruby.h (RHASH, RFILE, RSTRING, etc.) to perform > a quick type check. That solved the problem of crashing the built-in types > when the class was changed. I ran some tests; 100,000x calling file#read > with and without checking that the file object's class was truly T_FILE, and > I noticed no time difference. I don't think the extra check adds any > noticable overhead. That comparison using I/O wouldn't be accurate. First of all, why do you want to do it, and what do you want to do by it? -- Nobu Nakada