Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jruby/jruby
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: e15f74e335f6
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 6bf2323f03e3
Choose a head ref
  • 5 commits
  • 42 files changed
  • 1 contributor

Commits on Mar 26, 2018

  1. Fix most deprecated calls.

    headius committed Mar 26, 2018

    Verified

    This commit was signed with the committer’s verified signature.
    headius Charles Oliver Nutter
    Copy the full SHA
    bc950ea View commit details
  2. Copy the full SHA
    5e2fc23 View commit details

Commits on Mar 27, 2018

  1. Copy the full SHA
    4811ad2 View commit details
  2. Revert "Finally eliminate use of WrapperMethod."

    This reverts commit 5e2fc23.
    headius committed Mar 27, 2018
    Copy the full SHA
    c29f66a View commit details
  3. WrapperMethod is still needed for visibility.

    This commit sets in stone that we need WrapperMethod. I have
    renamed it to better reflect its behavior and added javadoc
    indicating why similar delegating wrappers are not suitable.
    headius committed Mar 27, 2018
    Copy the full SHA
    6bf2323 View commit details
Showing with 283 additions and 127 deletions.
  1. +1 −1 core/src/main/java/org/jruby/Ruby.java
  2. +1 −1 core/src/main/java/org/jruby/RubyComplex.java
  3. +2 −2 core/src/main/java/org/jruby/RubyIO.java
  4. +2 −3 core/src/main/java/org/jruby/RubyInteger.java
  5. +2 −3 core/src/main/java/org/jruby/RubyModule.java
  6. +6 −6 core/src/main/java/org/jruby/TopSelfFactory.java
  7. +6 −1 core/src/main/java/org/jruby/anno/IndyBinder.java
  8. +1 −1 core/src/main/java/org/jruby/internal/runtime/methods/DynamicMethod.java
  9. +1 −0 core/src/main/java/org/jruby/internal/runtime/methods/InvocationMethodFactory.java
  10. +13 −6 .../main/java/org/jruby/internal/runtime/methods/{WrapperMethod.java → PartialDelegatingMethod.java}
  11. +6 −1 core/src/main/java/org/jruby/ir/targets/ArrayDerefInvokeSite.java
  12. +6 −1 core/src/main/java/org/jruby/ir/targets/BignumObjectSite.java
  13. +72 −12 core/src/main/java/org/jruby/ir/targets/Bootstrap.java
  14. +6 −1 core/src/main/java/org/jruby/ir/targets/ConstantLookupSite.java
  15. +6 −1 core/src/main/java/org/jruby/ir/targets/DRegexpObjectSite.java
  16. +5 −1 core/src/main/java/org/jruby/ir/targets/FixnumObjectSite.java
  17. +6 −1 core/src/main/java/org/jruby/ir/targets/FloatObjectSite.java
  18. +6 −1 core/src/main/java/org/jruby/ir/targets/IRBytecodeAdapter7.java
  19. +30 −5 core/src/main/java/org/jruby/ir/targets/JVMVisitor.java
  20. +6 −1 core/src/main/java/org/jruby/ir/targets/NormalInvokeSite.java
  21. +6 −1 core/src/main/java/org/jruby/ir/targets/RegexpObjectSite.java
  22. +6 −1 core/src/main/java/org/jruby/ir/targets/SelfInvokeSite.java
  23. +6 −1 core/src/main/java/org/jruby/ir/targets/SuperInvokeSite.java
  24. +6 −2 core/src/main/java/org/jruby/ir/targets/SymbolObjectSite.java
  25. +6 −1 core/src/main/java/org/jruby/ir/targets/YieldSite.java
  26. +3 −3 core/src/main/java/org/jruby/java/invokers/FieldMethodOne.java
  27. +3 −3 core/src/main/java/org/jruby/java/invokers/FieldMethodZero.java
  28. +1 −1 core/src/main/java/org/jruby/java/proxies/ArrayJavaProxy.java
  29. +7 −7 core/src/main/java/org/jruby/java/proxies/JavaInterfaceTemplate.java
  30. +3 −3 core/src/main/java/org/jruby/javasupport/Java.java
  31. +1 −1 core/src/main/java/org/jruby/javasupport/binding/Initializer.java
  32. +3 −3 core/src/main/java/org/jruby/javasupport/ext/JavaIo.java
  33. +2 −2 core/src/main/java/org/jruby/javasupport/ext/JavaLang.java
  34. +1 −1 core/src/main/java/org/jruby/javasupport/ext/JavaNet.java
  35. +7 −9 core/src/main/java/org/jruby/javasupport/ext/Kernel.java
  36. +0 −1 core/src/test/java/org/jruby/embed/ScriptingContainerTest.java
  37. +28 −30 core/src/test/java/org/jruby/java/dispatch/CallableSelectorTest.java
  38. +1 −0 core/src/test/java/org/jruby/test/TestMethodFactories.java
  39. +2 −1 core/src/test/java/org/jruby/test/TestRuby.java
  40. +2 −2 core/src/test/java/org/jruby/test/TestRubyBigDecimal.java
  41. +1 −1 core/src/test/java/org/jruby/util/JRubyThreadContextTest.java
  42. +4 −4 core/src/test/java/org/jruby/util/log/LoggerFactoryTest.java
2 changes: 1 addition & 1 deletion core/src/main/java/org/jruby/Ruby.java
Original file line number Diff line number Diff line change
@@ -5132,7 +5132,7 @@ private void setNetworkStack() {
deprecatedNetworkStackProperty();
}

@SuppressWarnings("deprecated")
@SuppressWarnings("deprecation")
private void deprecatedNetworkStackProperty() {
if (Options.PREFER_IPV4.load()) {
LOG.warn("Warning: not setting network stack system property because socket subsystem may already be booted."
2 changes: 1 addition & 1 deletion core/src/main/java/org/jruby/RubyComplex.java
Original file line number Diff line number Diff line change
@@ -1032,7 +1032,7 @@ static RubyArray str_to_c_internal(ThreadContext context, IRubyObject recv) {
} else {
si = match.op_aref19(RubyFixnum.three(runtime));
IRubyObject t = match.op_aref19(RubyFixnum.four(runtime));
if (t.isNil()) t = runtime.newString(RubyFixnum.SINGLE_CHAR_BYTELISTS19['1']);
if (t.isNil()) t = runtime.newString(RubyInteger.SINGLE_CHAR_BYTELISTS['1']);
si.convertToString().cat(t.convertToString().getByteList());
}
re = match.post_match(context);
4 changes: 2 additions & 2 deletions core/src/main/java/org/jruby/RubyIO.java
Original file line number Diff line number Diff line change
@@ -1646,7 +1646,7 @@ public IRubyObject putc(ThreadContext context, IRubyObject ch) {
if (ch instanceof RubyString) {
str = ((RubyString)ch).substr(context.runtime, 0, 1);
} else {
str = RubyString.newStringShared(context.runtime, RubyFixnum.SINGLE_CHAR_BYTELISTS19[RubyNumeric.num2chr(ch) & 0xFF]);
str = RubyString.newStringShared(context.runtime, RubyInteger.SINGLE_CHAR_BYTELISTS[RubyNumeric.num2chr(ch) & 0xFF]);
}

sites(context).write.call(context, this, this, str);
@@ -1659,7 +1659,7 @@ public static IRubyObject putc(ThreadContext context, IRubyObject maybeIO, IRuby
((RubyIO)maybeIO).putc(context, object);
} else {
byte c = RubyNumeric.num2chr(object);
IRubyObject str = RubyString.newStringShared(context.runtime, RubyFixnum.SINGLE_CHAR_BYTELISTS19[c & 0xFF]);
IRubyObject str = RubyString.newStringShared(context.runtime, RubyInteger.SINGLE_CHAR_BYTELISTS[c & 0xFF]);
sites(context).write.call(context, maybeIO, maybeIO, str);
}

5 changes: 2 additions & 3 deletions core/src/main/java/org/jruby/RubyInteger.java
Original file line number Diff line number Diff line change
@@ -299,17 +299,16 @@ public IRubyObject succ(ThreadContext context) {
}

static final ByteList[] SINGLE_CHAR_BYTELISTS;
@Deprecated
public static final ByteList[] SINGLE_CHAR_BYTELISTS19;
static {
SINGLE_CHAR_BYTELISTS = new ByteList[256];
for (int i = 0; i < 256; i++) {
ByteList bytes = new ByteList(new byte[] { (byte) i }, false);
SINGLE_CHAR_BYTELISTS[i] = bytes;
bytes.setEncoding(i < 0x80 ? USASCIIEncoding.INSTANCE : ASCIIEncoding.INSTANCE);
}
SINGLE_CHAR_BYTELISTS19 = SINGLE_CHAR_BYTELISTS;
}
@Deprecated
public static final ByteList[] SINGLE_CHAR_BYTELISTS19 = SINGLE_CHAR_BYTELISTS;

static ByteList singleCharByteList(final byte index) {
return SINGLE_CHAR_BYTELISTS[index & 0xFF];
5 changes: 2 additions & 3 deletions core/src/main/java/org/jruby/RubyModule.java
Original file line number Diff line number Diff line change
@@ -78,11 +78,11 @@
import org.jruby.internal.runtime.methods.DynamicMethod;
import org.jruby.internal.runtime.methods.Framing;
import org.jruby.internal.runtime.methods.JavaMethod;
import org.jruby.internal.runtime.methods.PartialDelegatingMethod;
import org.jruby.internal.runtime.methods.ProcMethod;
import org.jruby.internal.runtime.methods.Scoping;
import org.jruby.internal.runtime.methods.SynchronizedDynamicMethod;
import org.jruby.internal.runtime.methods.UndefinedMethod;
import org.jruby.internal.runtime.methods.WrapperMethod;
import org.jruby.ir.IRClosure;
import org.jruby.ir.IRMethod;
import org.jruby.ir.runtime.IRRuntimeHelpers;
@@ -107,7 +107,6 @@
import org.jruby.runtime.ivars.MethodData;
import org.jruby.runtime.marshal.MarshalStream;
import org.jruby.runtime.marshal.UnmarshalStream;
import org.jruby.runtime.opto.ConstantInvalidator;
import org.jruby.runtime.opto.Invalidator;
import org.jruby.runtime.opto.OptoFactory;
import org.jruby.runtime.profile.MethodEnhancer;
@@ -1814,7 +1813,7 @@ public void exportMethod(String name, Visibility visibility) {
if (this == method.getImplementationClass()) {
method.setVisibility(visibility);
} else {
DynamicMethod newMethod = new WrapperMethod(this, method, visibility);
DynamicMethod newMethod = new PartialDelegatingMethod(this, method, visibility);

methodLocation.addMethod(name, newMethod);
}
12 changes: 6 additions & 6 deletions core/src/main/java/org/jruby/TopSelfFactory.java
Original file line number Diff line number Diff line change
@@ -59,7 +59,7 @@ public static IRubyObject createTopSelf(final Ruby runtime, final boolean wrappe

final RubyClass singletonClass = topSelf.getSingletonClass();

singletonClass.addMethod("to_s", new JavaMethod.JavaMethodZero(singletonClass, Visibility.PUBLIC) {
singletonClass.addMethod("to_s", new JavaMethod.JavaMethodZero(singletonClass, Visibility.PUBLIC, "to_s") {
@Override
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name) {
return runtime.newString("main");
@@ -69,29 +69,29 @@ public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule claz

// The following three methods must be defined fast, since they expect to modify the current frame
// (i.e. they expect no frame will be allocated for them). JRUBY-1185.
singletonClass.addMethod("include", new JavaMethod.JavaMethodN(singletonClass, Visibility.PRIVATE) {
singletonClass.addMethod("include", new JavaMethod.JavaMethodN(singletonClass, Visibility.PRIVATE, "include") {
@Override
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args) {
return context.runtime.getObject().include(args);
}
});

singletonClass.addMethod("public", new JavaMethod.JavaMethodN(singletonClass, Visibility.PRIVATE) {
singletonClass.addMethod("public", new JavaMethod.JavaMethodN(singletonClass, Visibility.PRIVATE, "public") {
@Override
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args) {
return context.runtime.getObject().rbPublic(context, args);
}
});

singletonClass.addMethod("private", new JavaMethod.JavaMethodN(singletonClass, Visibility.PRIVATE) {
singletonClass.addMethod("private", new JavaMethod.JavaMethodN(singletonClass, Visibility.PRIVATE, "private") {
@Override
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args) {
return context.runtime.getObject().rbPrivate(context, args);
}
});

final RubyClass klass = wrapper ? singletonClass : runtime.getObject();
singletonClass.addMethod("define_method", new JavaMethod.JavaMethodOneOrTwoBlock(singletonClass, Visibility.PRIVATE) {
singletonClass.addMethod("define_method", new JavaMethod.JavaMethodOneOrTwoBlock(singletonClass, Visibility.PRIVATE, "define_method") {
@Override
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject arg0, Block block) {
if (klass == singletonClass) warnWrapper(context);
@@ -105,7 +105,7 @@ public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule claz
}
});

singletonClass.addMethod("using", new JavaMethod.JavaMethodN(singletonClass, Visibility.PRIVATE) {
singletonClass.addMethod("using", new JavaMethod.JavaMethodN(singletonClass, Visibility.PRIVATE, "using") {
@Override
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule clazz, String name, IRubyObject[] args) {
Arity.checkArgumentCount(context.runtime, args, 1, 1);
7 changes: 6 additions & 1 deletion core/src/main/java/org/jruby/anno/IndyBinder.java
Original file line number Diff line number Diff line change
@@ -365,7 +365,12 @@ public void processMethodDeclarationMulti(List<ExecutableElement> methods) {
}
buffer.append(')');

Handle handle = new Handle(isStatic ? H_INVOKESTATIC : H_INVOKEVIRTUAL, qualifiedName.toString().replace('.', '/'), method.getSimpleName().toString(), Method.getMethod(buffer.toString()).getDescriptor());
Handle handle = new Handle(
isStatic ? H_INVOKESTATIC : H_INVOKEVIRTUAL,
qualifiedName.toString().replace('.', '/'),
method.getSimpleName().toString(),
Method.getMethod(buffer.toString()).getDescriptor(),
false);

int handleOffset = calculateHandleOffset(method.getParameters().size(), anno.required(), anno.optional(), anno.rest(), isStatic, hasContext, hasBlock);

Original file line number Diff line number Diff line change
@@ -395,7 +395,7 @@ public Arity getArity() {
/**
* Get the "real" method contained within this method. This simply returns
* self except in cases where a method is wrapped to give it a new
* name or new implementation class (AliasMethod, WrapperMethod, ...).
* name or new implementation class (AliasMethod, PartialDelegatingMethod, ...).
*
* @return The "real" method associated with this one
*/
Original file line number Diff line number Diff line change
@@ -343,6 +343,7 @@ public DynamicMethod getAnnotatedMethod(RubyModule implementationClass, JavaMeth
}
}

@SuppressWarnings("deprecation")
public JavaMethod constructJavaMethod(RubyModule implementationClass, JavaMethodDescriptor desc, String name, Class c) throws InstantiationException, IllegalAccessException, java.lang.reflect.InvocationTargetException, NoSuchMethodException {
// In order to support older versions of generated JavaMethod invokers, we check for the Version
// annotation to be present and > 0. If absent, we use a thread local to allow the deprecated constructor
Original file line number Diff line number Diff line change
@@ -36,18 +36,25 @@
import org.jruby.runtime.builtin.IRubyObject;

/**
*
* This is similar to {@link DelegatingDynamicMethod} except that it does not delegate most properties of DynamicMethod.
* Visibility, etc, set on an instance of {@link PartialDelegatingMethod} will not be delegated to the contained method.
*
* This type of method is used primarily for altering the visibility of a parent class's method in a child class.
*
* Note that {@link AliasMethod} is not a suitable substitute since it always passes the method's original name to the
* delegate, and {@link DelegatingDynamicMethod} is not a suitable substitute since it delegates all properties to the
* delegate.
*
* @author jpetersen
*/
@Deprecated
public class WrapperMethod extends DynamicMethod {
public class PartialDelegatingMethod extends DynamicMethod {
private DynamicMethod method;

/**
* Constructor for WrapperCallable.
* Constructor for PartialDelegatingMethod.
* @param visibility
*/
public WrapperMethod(RubyModule implementationClass, DynamicMethod method, Visibility visibility) {
public PartialDelegatingMethod(RubyModule implementationClass, DynamicMethod method, Visibility visibility) {
super(implementationClass, visibility, method.getName() );
this.method = method;
}
@@ -93,7 +100,7 @@ public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule klaz
}

public DynamicMethod dup() {
return new WrapperMethod(getImplementationClass(), method, getVisibility());
return new PartialDelegatingMethod(getImplementationClass(), method, getVisibility());
}

public long getSerialNumber() {
Original file line number Diff line number Diff line change
@@ -34,7 +34,12 @@ public ArrayDerefInvokeSite(MethodType type, String file, int line) {
super(type, "[]", false, file, line);
}

public static final Handle BOOTSTRAP = new Handle(Opcodes.H_INVOKESTATIC, p(ArrayDerefInvokeSite.class), "bootstrap", sig(CallSite.class, MethodHandles.Lookup.class, String.class, MethodType.class, String.class, int.class));
public static final Handle BOOTSTRAP = new Handle(
Opcodes.H_INVOKESTATIC,
p(ArrayDerefInvokeSite.class),
"bootstrap",
sig(CallSite.class, MethodHandles.Lookup.class, String.class, MethodType.class, String.class, int.class),
false);

public static CallSite bootstrap(MethodHandles.Lookup lookup, String name, MethodType type, String file, int line) {
InvokeSite site = new ArrayDerefInvokeSite(type, file, line);
Original file line number Diff line number Diff line change
@@ -25,7 +25,12 @@ public BignumObjectSite(MethodType type, String value) {
this.value = value;
}

public static final Handle BOOTSTRAP = new Handle(Opcodes.H_INVOKESTATIC, p(BignumObjectSite.class), "bootstrap", sig(CallSite.class, MethodHandles.Lookup.class, String.class, MethodType.class, String.class));
public static final Handle BOOTSTRAP = new Handle(
Opcodes.H_INVOKESTATIC,
p(BignumObjectSite.class),
"bootstrap",
sig(CallSite.class, MethodHandles.Lookup.class, String.class, MethodType.class, String.class),
false);

public static CallSite bootstrap(MethodHandles.Lookup lookup, String name, MethodType type, String value) {
return new BignumObjectSite(type, value).bootstrap(lookup);
84 changes: 72 additions & 12 deletions core/src/main/java/org/jruby/ir/targets/Bootstrap.java
Original file line number Diff line number Diff line change
@@ -142,39 +142,79 @@ public static CallSite ivar(Lookup lookup, String name, MethodType type) throws
}

public static Handle string() {
return new Handle(Opcodes.H_INVOKESTATIC, p(Bootstrap.class), "string", sig(CallSite.class, Lookup.class, String.class, MethodType.class, String.class, String.class, int.class));
return new Handle(
Opcodes.H_INVOKESTATIC,
p(Bootstrap.class),
"string",
sig(CallSite.class, Lookup.class, String.class, MethodType.class, String.class, String.class, int.class),
false);
}

public static Handle fstring() {
return new Handle(Opcodes.H_INVOKESTATIC, p(Bootstrap.class), "fstring", sig(CallSite.class, Lookup.class, String.class, MethodType.class, String.class, String.class, int.class, String.class, int.class));
return new Handle(
Opcodes.H_INVOKESTATIC,
p(Bootstrap.class),
"fstring",
sig(CallSite.class, Lookup.class, String.class, MethodType.class, String.class, String.class, int.class, String.class, int.class),
false);
}

public static Handle bytelist() {
return new Handle(Opcodes.H_INVOKESTATIC, p(Bootstrap.class), "bytelist", sig(CallSite.class, Lookup.class, String.class, MethodType.class, String.class, String.class));
return new Handle(
Opcodes.H_INVOKESTATIC,
p(Bootstrap.class),
"bytelist",
sig(CallSite.class, Lookup.class, String.class, MethodType.class, String.class, String.class),
false);
}

public static Handle array() {
return new Handle(Opcodes.H_INVOKESTATIC, p(Bootstrap.class), "array", sig(CallSite.class, Lookup.class, String.class, MethodType.class));
return new Handle(
Opcodes.H_INVOKESTATIC,
p(Bootstrap.class),
"array",
sig(CallSite.class, Lookup.class, String.class, MethodType.class),
false);
}

public static Handle hash() {
return new Handle(Opcodes.H_INVOKESTATIC, p(Bootstrap.class), "hash", sig(CallSite.class, Lookup.class, String.class, MethodType.class));
return new Handle(
Opcodes.H_INVOKESTATIC,
p(Bootstrap.class),
"hash",
sig(CallSite.class, Lookup.class, String.class, MethodType.class),
false);
}

public static Handle kwargsHash() {
return new Handle(Opcodes.H_INVOKESTATIC, p(Bootstrap.class), "kwargsHash", sig(CallSite.class, Lookup.class, String.class, MethodType.class));
return new Handle(
Opcodes.H_INVOKESTATIC,
p(Bootstrap.class),
"kwargsHash",
sig(CallSite.class, Lookup.class, String.class, MethodType.class),
false);
}

public static Handle invokeSuper() {
return SuperInvokeSite.BOOTSTRAP;
}

public static Handle ivar() {
return new Handle(Opcodes.H_INVOKESTATIC, p(Bootstrap.class), "ivar", sig(CallSite.class, Lookup.class, String.class, MethodType.class));
return new Handle(
Opcodes.H_INVOKESTATIC,
p(Bootstrap.class),
"ivar",
sig(CallSite.class, Lookup.class, String.class, MethodType.class),
false);
}

public static Handle global() {
return new Handle(Opcodes.H_INVOKESTATIC, p(Bootstrap.class), "globalBootstrap", sig(CallSite.class, Lookup.class, String.class, MethodType.class, String.class, int.class));
return new Handle(
Opcodes.H_INVOKESTATIC,
p(Bootstrap.class),
"globalBootstrap",
sig(CallSite.class, Lookup.class, String.class, MethodType.class, String.class, int.class),
false);
}

public static RubyString string(MutableCallSite site, ByteList value, int cr, ThreadContext context) throws Throwable {
@@ -215,11 +255,21 @@ public static IRubyObject array(ThreadContext context, IRubyObject[] elts) {
}

public static Handle contextValue() {
return new Handle(Opcodes.H_INVOKESTATIC, p(Bootstrap.class), "contextValue", sig(CallSite.class, Lookup.class, String.class, MethodType.class));
return new Handle(
Opcodes.H_INVOKESTATIC,
p(Bootstrap.class),
"contextValue",
sig(CallSite.class, Lookup.class, String.class, MethodType.class),
false);
}

public static Handle contextValueString() {
return new Handle(Opcodes.H_INVOKESTATIC, p(Bootstrap.class), "contextValueString", sig(CallSite.class, Lookup.class, String.class, MethodType.class, String.class));
return new Handle(
Opcodes.H_INVOKESTATIC,
p(Bootstrap.class),
"contextValueString",
sig(CallSite.class, Lookup.class, String.class, MethodType.class, String.class),
false);
}

public static CallSite contextValue(Lookup lookup, String name, MethodType type) {
@@ -845,7 +895,12 @@ public static Handle getBootstrapHandle(String name, String sig) {
}

public static Handle getBootstrapHandle(String name, Class type, String sig) {
return new Handle(Opcodes.H_INVOKESTATIC, p(type), name, sig);
return new Handle(
Opcodes.H_INVOKESTATIC,
p(type),
name,
sig,
false);
}

public static CallSite checkpointBootstrap(Lookup lookup, String name, MethodType type) throws Throwable {
@@ -949,7 +1004,12 @@ public static void setGlobalUncached(GlobalVariable variable, IRubyObject value)
}

public static Handle prepareBlock() {
return new Handle(Opcodes.H_INVOKESTATIC, p(Bootstrap.class), "prepareBlock", sig(CallSite.class, Lookup.class, String.class, MethodType.class, MethodHandle.class, MethodHandle.class, long.class));
return new Handle(
Opcodes.H_INVOKESTATIC,
p(Bootstrap.class),
"prepareBlock",
sig(CallSite.class, Lookup.class, String.class, MethodType.class, MethodHandle.class, MethodHandle.class, long.class),
false);
}

public static CallSite prepareBlock(Lookup lookup, String name, MethodType type, MethodHandle bodyHandle, MethodHandle scopeHandle, long encodedSignature) throws Throwable {
Loading