[macruby-changes] [615] MacRuby/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Tue Sep 23 14:55:00 PDT 2008
Revision: 615
http://trac.macosforge.org/projects/ruby/changeset/615
Author: lsansonetti at apple.com
Date: 2008-09-23 14:54:59 -0700 (Tue, 23 Sep 2008)
Log Message:
-----------
make sure #class does not return the CF hidden class for primitive types
Modified Paths:
--------------
MacRuby/trunk/objc.m
MacRuby/trunk/test/ruby/test_objc.rb
Modified: MacRuby/trunk/objc.m
===================================================================
--- MacRuby/trunk/objc.m 2008-09-23 02:11:48 UTC (rev 614)
+++ MacRuby/trunk/objc.m 2008-09-23 21:54:59 UTC (rev 615)
@@ -1130,9 +1130,21 @@
/* because Hash.new can accept a block */
return rb_class_new_instance(0, NULL, recv);
}
- else if (RCLASS_META(klass) && sel == @selector(class)) {
- /* because +[NSObject class] returns self */
- return rb_cClass;
+ else if (sel == @selector(class)) {
+ if (RCLASS_META(klass)) {
+ /* because +[NSObject class] returns self */
+ return rb_cClass;
+ }
+ /* because the CF classes should be hidden */
+ else if (klass == rb_cCFString) {
+ return rb_cNSMutableString;
+ }
+ else if (klass == rb_cCFArray) {
+ return rb_cNSMutableArray;
+ }
+ else if (klass == rb_cCFHash) {
+ return rb_cNSMutableHash;
+ }
}
ocrcv = RB2OC(recv);
Modified: MacRuby/trunk/test/ruby/test_objc.rb
===================================================================
--- MacRuby/trunk/test/ruby/test_objc.rb 2008-09-23 02:11:48 UTC (rev 614)
+++ MacRuby/trunk/test/ruby/test_objc.rb 2008-09-23 21:54:59 UTC (rev 615)
@@ -90,14 +90,17 @@
assert(o.instance_of?(NSMutableString))
assert(o.instance_of?(String))
assert(o.kind_of?(String))
+ assert_equal(String, o.class)
o = [42]
assert(o.instance_of?(NSMutableArray))
assert(o.instance_of?(Array))
assert(o.kind_of?(Array))
+ assert_equal(Array, o.class)
o = {42=>42}
assert(o.instance_of?(NSMutableDictionary))
assert(o.instance_of?(Hash))
assert(o.kind_of?(Hash))
+ assert_equal(Hash, o.class)
end
class ClassWithNamedArg
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macruby-changes/attachments/20080923/760e734a/attachment.html
More information about the macruby-changes
mailing list