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

source_changes at macosforge.org source_changes at macosforge.org
Fri Jan 14 05:52:46 PST 2011


Revision: 5166
          http://trac.macosforge.org/projects/ruby/changeset/5166
Author:   watson1978 at gmail.com
Date:     2011-01-14 05:52:41 -0800 (Fri, 14 Jan 2011)
Log Message:
-----------
Module and Class can freeze.

Test Script:
{{{
require 'test/unit/assertions.rb'
include Test::Unit::Assertions

m = Module.freeze
assert_equal(true, m.frozen?)

c = Class.freeze
assert_equal(true, c.frozen?)

s = String.freeze
assert_equal(true, s.frozen?)

str = "hello"
str.freeze
assert_equal(true, str.frozen?)

puts :ok
}}}

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

Modified: MacRuby/trunk/object.c
===================================================================
--- MacRuby/trunk/object.c	2011-01-14 08:37:53 UTC (rev 5165)
+++ MacRuby/trunk/object.c	2011-01-14 13:52:41 UTC (rev 5166)
@@ -1098,6 +1098,9 @@
 	    }
 	    st_insert(immediate_frozen_tbl, obj, (st_data_t)Qtrue);
 	}
+	else if ((type = TYPE(obj)) == T_CLASS || type == T_MODULE) {
+	    RCLASS_SET_VERSION_FLAG(obj, RCLASS_IS_FROZEN);
+	}
 	else if (NATIVE(obj)) {
 	    switch (TYPE(obj)) {
 		case T_SYMBOL:
@@ -1124,9 +1127,6 @@
 		    rb_objc_flag_set((const void *)obj, FL_FREEZE, true);
 	    }
 	}
-	else if ((type = TYPE(obj)) == T_CLASS || type == T_MODULE) {
-	    RCLASS_SET_VERSION_FLAG(obj, RCLASS_IS_FROZEN);
-	}
 	else {
 	    FL_SET(obj, FL_FREEZE);
 	}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20110114/c27a86f1/attachment.html>


More information about the macruby-changes mailing list