[macruby-changes] [127] MacRuby/trunk/object.c

source_changes at macosforge.org source_changes at macosforge.org
Mon Mar 31 19:23:04 PDT 2008


Revision: 127
          http://trac.macosforge.org/projects/ruby/changeset/127
Author:   lsansonetti at apple.com
Date:     2008-03-31 19:23:04 -0700 (Mon, 31 Mar 2008)

Log Message:
-----------
fix rb_obj_freeze so that arrays and hashes can be frozen

Modified Paths:
--------------
    MacRuby/trunk/object.c

Modified: MacRuby/trunk/object.c
===================================================================
--- MacRuby/trunk/object.c	2008-04-01 02:18:42 UTC (rev 126)
+++ MacRuby/trunk/object.c	2008-04-01 02:23:04 UTC (rev 127)
@@ -758,9 +758,16 @@
 rb_obj_freeze(VALUE obj)
 {
 #if WITH_OBJC
-    if (rb_objc_is_non_native(obj))
-	rb_raise(rb_eRuntimeError, "can't freeze pure objc object `%s'",
-	    RSTRING_PTR(rb_inspect(obj)));
+    if (rb_objc_is_non_native(obj)) {
+	int type = TYPE(obj);
+	if (type == T_ARRAY)
+	    rb_ary_freeze(obj);
+	else if (type == T_HASH)
+	    rb_hash_freeze(obj);
+	else
+	    rb_raise(rb_eRuntimeError, "can't freeze pure objc object `%s'",
+		    RSTRING_PTR(rb_inspect(obj)));
+    }
 #endif
     if (!OBJ_FROZEN(obj)) {
 	if (rb_safe_level() >= 4 && !OBJ_TAINTED(obj)) {

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macruby-changes/attachments/20080331/e738ec6e/attachment.html


More information about the macruby-changes mailing list