Skip to content

Commit bb24407

Browse files
committed
Fixes for freeze fix
1 parent 574d6bd commit bb24407

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed

spec/ruby/language/def_spec.rb

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -91,17 +91,21 @@ def foo(a); end
9191
end
9292

9393
it "raises FrozenError with the correct class name" do
94-
-> { Module.new do
95-
self.freeze
96-
def foo; end
97-
end }.should raise_error(FrozenError){ |e|
94+
-> {
95+
Module.new do
96+
self.freeze
97+
def foo; end
98+
end
99+
}.should raise_error(FrozenError) { |e|
98100
e.message.should == "can't modify frozen module"
99101
}
100102

101-
-> { Class.new do
102-
self.freeze
103-
def foo; end
104-
end }.should raise_error(FrozenError){ |e|
103+
-> {
104+
Class.new do
105+
self.freeze
106+
def foo; end
107+
end
108+
}.should raise_error(FrozenError){ |e|
105109
e.message.should == "can't modify frozen class"
106110
}
107111
end

src/main/java/org/truffleruby/core/kernel/KernelNodes.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -857,13 +857,14 @@ protected Object freeze(Object self,
857857
@Specialization(limit = "getRubyLibraryCacheLimit()", guards = "isRubyDynamicObject(self)")
858858
protected Object freezeDynamicObject(Object self,
859859
@CachedLibrary("self") RubyLibrary rubyLibrary,
860-
@Cached("createBinaryProfile()") ConditionProfile singletonProfile,
860+
@CachedLibrary(limit = "1") RubyLibrary rubyLibraryMetaClass,
861+
@Cached ConditionProfile singletonProfile,
861862
@Cached MetaClassNode metaClassNode) {
862863
final RubyClass metaClass = metaClassNode.execute(self);
863864
if (singletonProfile.profile(metaClass.isSingleton &&
864865
!(RubyGuards.isRubyClass(self) && ((RubyClass) self).isSingleton))) {
865-
if (!RubyLibrary.getUncached().isFrozen(metaClass)) {
866-
RubyLibrary.getUncached().freeze(metaClass);
866+
if (!rubyLibraryMetaClass.isFrozen(metaClass)) {
867+
rubyLibraryMetaClass.freeze(metaClass);
867868
}
868869
}
869870
rubyLibrary.freeze(self);

0 commit comments

Comments
 (0)