--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/D Thu May 31 10:14:41 2018 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-diff --git a/compiler/src/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/ClassfileBytecodeProvider.java b/compiler/src/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/ClassfileBytecodeProvider.java
-index 88403c3..728297d 100644
---- a/compiler/src/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/ClassfileBytecodeProvider.java
-+++ b/compiler/src/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/ClassfileBytecodeProvider.java
-@@ -138,7 +138,11 @@ public final class ClassfileBytecodeProvider implements BytecodeProvider {
- return classfile;
- }
-
-- synchronized Class<?> resolveToClass(String descriptor) {
-+ Class<?> resolveToClass(String descriptor) {
-+ return resolveToClass(descriptor, false);
-+ }
-+
-+ synchronized Class<?> resolveToClass(String descriptor, boolean initialize) {
- Class<?> c = classes.get(descriptor);
- if (c == null) {
- if (descriptor.length() == 1) {
-@@ -155,7 +159,7 @@ public final class ClassfileBytecodeProvider implements BytecodeProvider {
- name = descriptor.replace('/', '.');
- }
- try {
-- c = Class.forName(name, true, loader);
-+ c = Class.forName(name, initialize, loader);
- classes.put(descriptor, c);
- } catch (ClassNotFoundException e) {
- throw new NoClassDefFoundError(descriptor);
-diff --git a/compiler/src/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/ClassfileConstant.java b/compiler/src/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/ClassfileConstant.java
-index 087f78b..bde2dd4 100644
---- a/compiler/src/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/ClassfileConstant.java
-+++ b/compiler/src/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/ClassfileConstant.java
-@@ -70,8 +70,9 @@ abstract class ClassfileConstant {
- * @param cp
- * @param index
- * @param opcode
-+ * @param initialize
- */
-- public void loadReferencedType(ClassfileConstantPool cp, int index, int opcode) {
-+ public void loadReferencedType(ClassfileConstantPool cp, int index, int opcode, boolean initialize) {
- }
-
- @Override
-@@ -90,15 +91,19 @@ abstract class ClassfileConstant {
- }
-
- @Override
-- public void loadReferencedType(ClassfileConstantPool cp, int index, int opcode) {
-- resolve(cp);
-+ public void loadReferencedType(ClassfileConstantPool cp, int index, int opcode, boolean initialize) {
-+ resolve(cp, initialize);
- }
-
- public ResolvedJavaType resolve(ClassfileConstantPool cp) throws GraalError {
-+ return resolve(cp, false /* initialize */);
-+ }
-+
-+ public ResolvedJavaType resolve(ClassfileConstantPool cp, boolean initialize) throws GraalError {
- if (type == null) {
- String typeDescriptor = cp.get(Utf8.class, nameIndex).value;
- ClassfileBytecodeProvider context = cp.context;
-- type = context.metaAccess.lookupJavaType(context.resolveToClass(typeDescriptor));
-+ type = context.metaAccess.lookupJavaType(context.resolveToClass(typeDescriptor, initialize));
- }
- return type;
- }
-@@ -116,8 +121,8 @@ abstract class ClassfileConstant {
- }
-
- @Override
-- public void loadReferencedType(ClassfileConstantPool cp, int index, int opcode) {
-- cp.get(ClassRef.class, classIndex).loadReferencedType(cp, classIndex, opcode);
-+ public void loadReferencedType(ClassfileConstantPool cp, int index, int opcode, boolean initialize) {
-+ cp.get(ClassRef.class, classIndex).loadReferencedType(cp, classIndex, opcode, initialize);
- }
- }
-
-@@ -269,7 +274,7 @@ abstract class ClassfileConstant {
- }
-
- @Override
-- public void loadReferencedType(ClassfileConstantPool cp, int index, int opcode) {
-+ public void loadReferencedType(ClassfileConstantPool cp, int index, int opcode, boolean initialize) {
- throw new GraalError("Resolution of " + name + " constant pool entries not supported by " + ClassfileBytecodeProvider.class.getSimpleName());
- }
- }
-diff --git a/compiler/src/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/ClassfileConstantPool.java b/compiler/src/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/ClassfileConstantPool.java
-index 218df10..a54779b 100644
---- a/compiler/src/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/ClassfileConstantPool.java
-+++ b/compiler/src/org.graalvm.compiler.replacements/src/org/graalvm/compiler/replacements/classfile/ClassfileConstantPool.java
-@@ -133,11 +133,11 @@ class ClassfileConstantPool implements ConstantPool {
- }
-
- @Override
-- public void loadReferencedType(int index, int opcode) {
-+ public void loadReferencedType(int index, int opcode, boolean initialize) {
- if (opcode == Bytecodes.INVOKEDYNAMIC) {
- throw new GraalError("INVOKEDYNAMIC not supported by " + ClassfileBytecodeProvider.class.getSimpleName());
- }
-- entries[index].loadReferencedType(this, index, opcode);
-+ entries[index].loadReferencedType(this, index, opcode, initialize);
- }
-
- @Override