Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Fix missing callMethod override #4642
Although not used by default, the Reificator class at https://github.com/jruby/jruby/blob/188.8.131.52/core/src/main/java/org/jruby/RubyClass.java#L1583 checks which version of callMethod it should use, and needs all three versions: no argument, one argument, and more than one argument.
One of these overrides did not exist, and thus would result on a
when running an example with -Xreify.classes=true
class BrokenReify def initialize_copy(other) super end end puts BrokenReify.new.clone
With this fix, the above example starts instead giving a java.lang.StackOverflowError due to another bug/bad interaction of the reify.classes option, which I'll report separately.
was lately thinking about what needs to be done for
I plan to open a separate issue, but when I was looking at the code today to debug this I ended up discovering that
I believe that just having 1) would be extremely valuable. Double so if it was enabled by default.
On the other hand, 2) seems to be what mostly limits this feature, and actually is what makes the test above enter an infinite recursion: