[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