mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
Merge
This commit is contained in:
commit
3c4d3002f2
30 changed files with 168 additions and 120 deletions
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -55,7 +55,7 @@ public class HelloWorld {
|
||||||
synchronized(lock) {
|
synchronized(lock) {
|
||||||
if (useMethodInvoke) {
|
if (useMethodInvoke) {
|
||||||
try {
|
try {
|
||||||
Method method = HelloWorld.class.getMethod("e", null);
|
Method method = HelloWorld.class.getMethod("e");
|
||||||
Integer result = (Integer) method.invoke(null, new Object[0]);
|
Integer result = (Integer) method.invoke(null, new Object[0]);
|
||||||
return result.intValue();
|
return result.intValue();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -52,12 +52,10 @@ public class ByteValueImpl extends PrimitiveValueImpl
|
||||||
return intValue();
|
return intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(Object obj) {
|
public int compareTo(ByteValue byteVal) {
|
||||||
byte other = ((ByteValue)obj).value();
|
return value() - byteVal.value();
|
||||||
return value() - other;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Type type() {
|
public Type type() {
|
||||||
return vm.theByteType();
|
return vm.theByteType();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -52,9 +52,8 @@ public class CharValueImpl extends PrimitiveValueImpl
|
||||||
return intValue();
|
return intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(Object obj) {
|
public int compareTo(CharValue charVal) {
|
||||||
char other = ((CharValue)obj).value();
|
return value() - charVal.value();
|
||||||
return value() - other;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Type type() {
|
public Type type() {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -186,7 +186,7 @@ abstract class ConnectorImpl implements Connector {
|
||||||
// assert isVMVersionMismatch(throwable), "not a VMVersionMismatch"
|
// assert isVMVersionMismatch(throwable), "not a VMVersionMismatch"
|
||||||
Class expClass = throwable.getClass();
|
Class expClass = throwable.getClass();
|
||||||
Method targetVersionMethod = expClass.getMethod("getTargetVersion", new Class[0]);
|
Method targetVersionMethod = expClass.getMethod("getTargetVersion", new Class[0]);
|
||||||
return (String) targetVersionMethod.invoke(throwable, null);
|
return (String) targetVersionMethod.invoke(throwable);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** If the causal chain has a sun.jvm.hotspot.runtime.VMVersionMismatchException,
|
/** If the causal chain has a sun.jvm.hotspot.runtime.VMVersionMismatchException,
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -45,8 +45,8 @@ public class DoubleValueImpl extends PrimitiveValueImpl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(Object obj) {
|
public int compareTo(DoubleValue doubleVal) {
|
||||||
double other = ((DoubleValue)obj).value();
|
double other = doubleVal.value();
|
||||||
if (value() < other) {
|
if (value() < other) {
|
||||||
return -1;
|
return -1;
|
||||||
} else if (value() == other) {
|
} else if (value() == other) {
|
||||||
|
|
|
@ -145,8 +145,7 @@ public class FieldImpl extends TypeComponentImpl implements Field {
|
||||||
}
|
}
|
||||||
|
|
||||||
// From interface Comparable
|
// From interface Comparable
|
||||||
public int compareTo(Object object) {
|
public int compareTo(Field field) {
|
||||||
Field field = (Field)object;
|
|
||||||
ReferenceTypeImpl declaringType = (ReferenceTypeImpl)declaringType();
|
ReferenceTypeImpl declaringType = (ReferenceTypeImpl)declaringType();
|
||||||
int rc = declaringType.compareTo(field.declaringType());
|
int rc = declaringType.compareTo(field.declaringType());
|
||||||
if (rc == 0) {
|
if (rc == 0) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -52,8 +52,8 @@ public class FloatValueImpl extends PrimitiveValueImpl
|
||||||
return intValue();
|
return intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(Object obj) {
|
public int compareTo(FloatValue floatVal) {
|
||||||
float other = ((FloatValue)obj).value();
|
float other = floatVal.value();
|
||||||
if (value() < other) {
|
if (value() < other) {
|
||||||
return -1;
|
return -1;
|
||||||
} else if (value() == other) {
|
} else if (value() == other) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -52,9 +52,8 @@ public class IntegerValueImpl extends PrimitiveValueImpl
|
||||||
return intValue();
|
return intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(Object obj) {
|
public int compareTo(IntegerValue integerVal) {
|
||||||
int other = ((IntegerValue)obj).value();
|
return value() - integerVal.value();
|
||||||
return value() - other;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Type type() {
|
public Type type() {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2004, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -67,8 +67,8 @@ public class LocalVariableImpl extends MirrorImpl
|
||||||
return (int)method.hashCode() + slot();
|
return (int)method.hashCode() + slot();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(Object object) {
|
public int compareTo(LocalVariable localVar) {
|
||||||
LocalVariableImpl other = (LocalVariableImpl)object;
|
LocalVariableImpl other = (LocalVariableImpl) localVar;
|
||||||
int rc = method.compareTo(other.method);
|
int rc = method.compareTo(other.method);
|
||||||
if (rc == 0) {
|
if (rc == 0) {
|
||||||
rc = slot() - other.slot();
|
rc = slot() - other.slot();
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -78,8 +78,7 @@ public class LocationImpl extends MirrorImpl implements Location {
|
||||||
return method().hashCode() + (int)codeIndex();
|
return method().hashCode() + (int)codeIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(Object object) {
|
public int compareTo(Location other) {
|
||||||
LocationImpl other = (LocationImpl)object;
|
|
||||||
int rc = method().compareTo(other.method());
|
int rc = method().compareTo(other.method());
|
||||||
if (rc == 0) {
|
if (rc == 0) {
|
||||||
long diff = codeIndex() - other.codeIndex();
|
long diff = codeIndex() - other.codeIndex();
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -52,8 +52,8 @@ public class LongValueImpl extends PrimitiveValueImpl
|
||||||
return intValue();
|
return intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(Object obj) {
|
public int compareTo(LongValue longVal) {
|
||||||
long other = ((LongValue)obj).value();
|
long other = longVal.value();
|
||||||
if (value() < other) {
|
if (value() < other) {
|
||||||
return -1;
|
return -1;
|
||||||
} else if (value() == other) {
|
} else if (value() == other) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -200,8 +200,7 @@ public abstract class MethodImpl extends TypeComponentImpl implements Method {
|
||||||
}
|
}
|
||||||
|
|
||||||
// From interface Comparable
|
// From interface Comparable
|
||||||
public int compareTo(Object object) {
|
public int compareTo(Method method) {
|
||||||
Method method = (Method)object;
|
|
||||||
ReferenceTypeImpl declaringType = (ReferenceTypeImpl)declaringType();
|
ReferenceTypeImpl declaringType = (ReferenceTypeImpl)declaringType();
|
||||||
int rc = declaringType.compareTo(method.declaringType());
|
int rc = declaringType.compareTo(method.declaringType());
|
||||||
if (rc == 0) {
|
if (rc == 0) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2005, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -99,7 +99,7 @@ implements ReferenceType {
|
||||||
return saKlass.hashCode();
|
return saKlass.hashCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(Object object) {
|
public int compareTo(ReferenceType refType) {
|
||||||
/*
|
/*
|
||||||
* Note that it is critical that compareTo() == 0
|
* Note that it is critical that compareTo() == 0
|
||||||
* implies that equals() == true. Otherwise, TreeSet
|
* implies that equals() == true. Otherwise, TreeSet
|
||||||
|
@ -108,7 +108,7 @@ implements ReferenceType {
|
||||||
* (Classes of the same name loaded by different class loaders
|
* (Classes of the same name loaded by different class loaders
|
||||||
* or in different VMs must not return 0).
|
* or in different VMs must not return 0).
|
||||||
*/
|
*/
|
||||||
ReferenceTypeImpl other = (ReferenceTypeImpl)object;
|
ReferenceTypeImpl other = (ReferenceTypeImpl)refType;
|
||||||
int comp = name().compareTo(other.name());
|
int comp = name().compareTo(other.name());
|
||||||
if (comp == 0) {
|
if (comp == 0) {
|
||||||
Oop rf1 = ref();
|
Oop rf1 = ref();
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -52,9 +52,8 @@ public class ShortValueImpl extends PrimitiveValueImpl
|
||||||
return intValue();
|
return intValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
public int compareTo(Object obj) {
|
public int compareTo(ShortValue shortVal) {
|
||||||
short other = ((ShortValue)obj).value();
|
return value() - shortVal.value();
|
||||||
return value() - other;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Type type() {
|
public Type type() {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -798,12 +798,11 @@ public class VirtualMachineImpl extends MirrorImpl implements PathSearchingVirtu
|
||||||
}
|
}
|
||||||
|
|
||||||
public String description() {
|
public String description() {
|
||||||
String[] versionParts = {"" + vmmgr.majorInterfaceVersion(),
|
|
||||||
"" + vmmgr.minorInterfaceVersion(),
|
|
||||||
name()};
|
|
||||||
return java.text.MessageFormat.format(java.util.ResourceBundle.
|
return java.text.MessageFormat.format(java.util.ResourceBundle.
|
||||||
getBundle("com.sun.tools.jdi.resources.jdi").getString("version_format"),
|
getBundle("com.sun.tools.jdi.resources.jdi").getString("version_format"),
|
||||||
versionParts);
|
"" + vmmgr.majorInterfaceVersion(),
|
||||||
|
"" + vmmgr.minorInterfaceVersion(),
|
||||||
|
name());
|
||||||
}
|
}
|
||||||
|
|
||||||
public String version() {
|
public String version() {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -97,8 +97,8 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
|
||||||
$(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST)))
|
$(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST)))
|
||||||
$(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST)))
|
$(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST)))
|
||||||
|
|
||||||
$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
|
$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
|
||||||
$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
|
$(QUIETLY) $(REMOTE) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
|
||||||
|
|
||||||
$(QUIETLY) $(REMOTE) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
|
$(QUIETLY) $(REMOTE) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
|
||||||
$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
|
$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
|
||||||
|
|
|
@ -142,13 +142,15 @@ COMPILER2_PATHS += $(HS_COMMON_SRC)/share/vm/opto
|
||||||
COMPILER2_PATHS += $(HS_COMMON_SRC)/share/vm/libadt
|
COMPILER2_PATHS += $(HS_COMMON_SRC)/share/vm/libadt
|
||||||
COMPILER2_PATHS += $(GENERATED)/adfiles
|
COMPILER2_PATHS += $(GENERATED)/adfiles
|
||||||
|
|
||||||
|
SHARK_PATHS := $(GAMMADIR)/src/share/vm/shark
|
||||||
|
|
||||||
# Include dirs per type.
|
# Include dirs per type.
|
||||||
Src_Dirs/CORE := $(CORE_PATHS)
|
Src_Dirs/CORE := $(CORE_PATHS)
|
||||||
Src_Dirs/COMPILER1 := $(CORE_PATHS) $(COMPILER1_PATHS)
|
Src_Dirs/COMPILER1 := $(CORE_PATHS) $(COMPILER1_PATHS)
|
||||||
Src_Dirs/COMPILER2 := $(CORE_PATHS) $(COMPILER2_PATHS)
|
Src_Dirs/COMPILER2 := $(CORE_PATHS) $(COMPILER2_PATHS)
|
||||||
Src_Dirs/TIERED := $(CORE_PATHS) $(COMPILER1_PATHS) $(COMPILER2_PATHS)
|
Src_Dirs/TIERED := $(CORE_PATHS) $(COMPILER1_PATHS) $(COMPILER2_PATHS)
|
||||||
Src_Dirs/ZERO := $(CORE_PATHS)
|
Src_Dirs/ZERO := $(CORE_PATHS)
|
||||||
Src_Dirs/SHARK := $(CORE_PATHS)
|
Src_Dirs/SHARK := $(CORE_PATHS) $(SHARK_PATHS)
|
||||||
Src_Dirs := $(Src_Dirs/$(TYPE))
|
Src_Dirs := $(Src_Dirs/$(TYPE))
|
||||||
|
|
||||||
COMPILER2_SPECIFIC_FILES := opto libadt bcEscapeAnalyzer.cpp chaitin\* c2_\* runtime_\*
|
COMPILER2_SPECIFIC_FILES := opto libadt bcEscapeAnalyzer.cpp chaitin\* c2_\* runtime_\*
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -88,8 +88,8 @@ $(GENERATED)/sa-jdi.jar: $(AGENT_FILES1) $(AGENT_FILES2)
|
||||||
$(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST)))
|
$(foreach file,$(AGENT_FILES1),$(shell echo $(file) >> $(AGENT_FILES1_LIST)))
|
||||||
$(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST)))
|
$(foreach file,$(AGENT_FILES2),$(shell echo $(file) >> $(AGENT_FILES2_LIST)))
|
||||||
|
|
||||||
$(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
|
$(QUIETLY) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES1_LIST)
|
||||||
$(QUIETLY) $(COMPILE.JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
|
$(QUIETLY) $(COMPILE.JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) @$(AGENT_FILES2_LIST)
|
||||||
|
|
||||||
$(QUIETLY) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
|
$(QUIETLY) $(COMPILE.RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
|
||||||
$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
|
$(QUIETLY) echo "$(SA_BUILD_VERSION_PROP)" > $(SA_PROPERTIES)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#
|
#
|
||||||
# Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
#
|
#
|
||||||
# This code is free software; you can redistribute it and/or modify it
|
# This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -55,9 +55,9 @@ default:: $(GENERATED)\sa-jdi.jar
|
||||||
$(GENERATED)\sa-jdi.jar: $(AGENT_FILES1:/=\) $(AGENT_FILES2:/=\)
|
$(GENERATED)\sa-jdi.jar: $(AGENT_FILES1:/=\) $(AGENT_FILES2:/=\)
|
||||||
@if not exist $(SA_CLASSDIR) mkdir $(SA_CLASSDIR)
|
@if not exist $(SA_CLASSDIR) mkdir $(SA_CLASSDIR)
|
||||||
@echo ...Building sa-jdi.jar
|
@echo ...Building sa-jdi.jar
|
||||||
@echo ...$(COMPILE_JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -d $(SA_CLASSDIR) ....
|
@echo ...$(COMPILE_JAVAC) -classpath $(SA_CLASSPATH) -d $(SA_CLASSDIR) ....
|
||||||
@$(COMPILE_JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1:/=\)
|
@$(COMPILE_JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES1:/=\)
|
||||||
@$(COMPILE_JAVAC) -source 1.4 -target 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2:/=\)
|
@$(COMPILE_JAVAC) -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -d $(SA_CLASSDIR) $(AGENT_FILES2:/=\)
|
||||||
$(COMPILE_RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
|
$(COMPILE_RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer
|
||||||
$(QUIETLY) echo $(SA_BUILD_VERSION_PROP)> $(SA_PROPERTIES)
|
$(QUIETLY) echo $(SA_BUILD_VERSION_PROP)> $(SA_PROPERTIES)
|
||||||
$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
|
$(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js
|
||||||
|
|
|
@ -2648,45 +2648,39 @@ bool os::uncommit_memory(char* addr, size_t size) {
|
||||||
// writing thread stacks don't use growable mappings (i.e. those
|
// writing thread stacks don't use growable mappings (i.e. those
|
||||||
// creeated with MAP_GROWSDOWN), and aren't marked "[stack]", so this
|
// creeated with MAP_GROWSDOWN), and aren't marked "[stack]", so this
|
||||||
// only applies to the main thread.
|
// only applies to the main thread.
|
||||||
static bool
|
|
||||||
get_stack_bounds(uintptr_t *bottom, uintptr_t *top)
|
static
|
||||||
{
|
bool get_stack_bounds(uintptr_t *bottom, uintptr_t *top) {
|
||||||
FILE *f = fopen("/proc/self/maps", "r");
|
|
||||||
if (f == NULL)
|
char buf[128];
|
||||||
|
int fd, sz;
|
||||||
|
|
||||||
|
if ((fd = ::open("/proc/self/maps", O_RDONLY)) < 0) {
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
while (!feof(f)) {
|
|
||||||
size_t dummy;
|
|
||||||
char *str = NULL;
|
|
||||||
ssize_t len = getline(&str, &dummy, f);
|
|
||||||
if (len == -1) {
|
|
||||||
fclose(f);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (len > 0 && str[len-1] == '\n') {
|
|
||||||
str[len-1] = 0;
|
|
||||||
len--;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const char *stack_str = "[stack]";
|
|
||||||
if (len > (ssize_t)strlen(stack_str)
|
|
||||||
&& (strcmp(str + len - strlen(stack_str), stack_str) == 0)) {
|
|
||||||
if (sscanf(str, "%" SCNxPTR "-%" SCNxPTR, bottom, top) == 2) {
|
|
||||||
uintptr_t sp = (uintptr_t)__builtin_frame_address(0);
|
|
||||||
if (sp >= *bottom && sp <= *top) {
|
|
||||||
free(str);
|
|
||||||
fclose(f);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
free(str);
|
|
||||||
}
|
}
|
||||||
fclose(f);
|
|
||||||
|
const char kw[] = "[stack]";
|
||||||
|
const int kwlen = sizeof(kw)-1;
|
||||||
|
|
||||||
|
// Address part of /proc/self/maps couldn't be more than 128 bytes
|
||||||
|
while ((sz = os::get_line_chars(fd, buf, sizeof(buf))) > 0) {
|
||||||
|
if (sz > kwlen && ::memcmp(buf+sz-kwlen, kw, kwlen) == 0) {
|
||||||
|
// Extract addresses
|
||||||
|
if (sscanf(buf, "%" SCNxPTR "-%" SCNxPTR, bottom, top) == 2) {
|
||||||
|
uintptr_t sp = (uintptr_t) __builtin_frame_address(0);
|
||||||
|
if (sp >= *bottom && sp <= *top) {
|
||||||
|
::close(fd);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
::close(fd);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// If the (growable) stack mapping already extends beyond the point
|
// If the (growable) stack mapping already extends beyond the point
|
||||||
// where we're going to put our guard pages, truncate the mapping at
|
// where we're going to put our guard pages, truncate the mapping at
|
||||||
// that point by munmap()ping it. This ensures that when we later
|
// that point by munmap()ping it. This ensures that when we later
|
||||||
|
|
|
@ -497,6 +497,9 @@ class CompilerInterfaceVC10 extends CompilerInterface {
|
||||||
addAttr(rv, "TargetMachine", "MachineX64");
|
addAttr(rv, "TargetMachine", "MachineX64");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// We always want the /DEBUG option to get full symbol information in the pdb files
|
||||||
|
addAttr(rv, "GenerateDebugInformation", "true");
|
||||||
|
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -504,8 +507,7 @@ class CompilerInterfaceVC10 extends CompilerInterface {
|
||||||
Vector getDebugLinkerFlags() {
|
Vector getDebugLinkerFlags() {
|
||||||
Vector rv = new Vector();
|
Vector rv = new Vector();
|
||||||
|
|
||||||
// /DEBUG option
|
// Empty now that /DEBUG option is used by all configs
|
||||||
addAttr(rv, "GenerateDebugInformation", "true");
|
|
||||||
|
|
||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1431,32 +1431,41 @@ void java_lang_Throwable::fill_in_stack_trace(Handle throwable, TRAPS) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef ASSERT
|
#ifdef ASSERT
|
||||||
assert(st_method() == method && st.bci() == bci,
|
assert(st_method() == method && st.bci() == bci,
|
||||||
"Wrong stack trace");
|
"Wrong stack trace");
|
||||||
st.next();
|
st.next();
|
||||||
// vframeStream::method isn't GC-safe so store off a copy
|
// vframeStream::method isn't GC-safe so store off a copy
|
||||||
// of the methodOop in case we GC.
|
// of the methodOop in case we GC.
|
||||||
if (!st.at_end()) {
|
if (!st.at_end()) {
|
||||||
st_method = st.method();
|
st_method = st.method();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// the format of the stacktrace will be:
|
||||||
|
// - 1 or more fillInStackTrace frames for the exception class (skipped)
|
||||||
|
// - 0 or more <init> methods for the exception class (skipped)
|
||||||
|
// - rest of the stack
|
||||||
|
|
||||||
if (!skip_fillInStackTrace_check) {
|
if (!skip_fillInStackTrace_check) {
|
||||||
// check "fillInStackTrace" only once, so we negate the flag
|
if ((method->name() == vmSymbols::fillInStackTrace_name() ||
|
||||||
// after the first time check.
|
method->name() == vmSymbols::fillInStackTrace0_name()) &&
|
||||||
skip_fillInStackTrace_check = true;
|
throwable->is_a(method->method_holder())) {
|
||||||
if (method->name() == vmSymbols::fillInStackTrace_name()) {
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
skip_fillInStackTrace_check = true; // gone past them all
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// skip <init> methods of the exceptions klass. If there is <init> methods
|
|
||||||
// that belongs to a superclass of the exception we are going to skipping
|
|
||||||
// them in stack trace. This is simlar to classic VM.
|
|
||||||
if (!skip_throwableInit_check) {
|
if (!skip_throwableInit_check) {
|
||||||
|
assert(skip_fillInStackTrace_check, "logic error in backtrace filtering");
|
||||||
|
|
||||||
|
// skip <init> methods of the exception class and superclasses
|
||||||
|
// This is simlar to classic VM.
|
||||||
if (method->name() == vmSymbols::object_initializer_name() &&
|
if (method->name() == vmSymbols::object_initializer_name() &&
|
||||||
throwable->is_a(method->method_holder())) {
|
throwable->is_a(method->method_holder())) {
|
||||||
continue;
|
continue;
|
||||||
} else {
|
} else {
|
||||||
// if no "Throwable.init()" method found, we stop checking it next time.
|
// there are none or we've seen them all - either way stop checking
|
||||||
skip_throwableInit_check = true;
|
skip_throwableInit_check = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -208,8 +208,10 @@ bool StackMapFrame::has_flag_match_exception(
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool StackMapFrame::is_assignable_to(const StackMapFrame* target, TRAPS) const {
|
bool StackMapFrame::is_assignable_to(
|
||||||
if (_max_locals != target->max_locals() || _stack_size != target->stack_size()) {
|
const StackMapFrame* target, bool is_exception_handler, TRAPS) const {
|
||||||
|
if (_max_locals != target->max_locals() ||
|
||||||
|
_stack_size != target->stack_size()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// Only need to compare type elements up to target->locals() or target->stack().
|
// Only need to compare type elements up to target->locals() or target->stack().
|
||||||
|
@ -222,7 +224,7 @@ bool StackMapFrame::is_assignable_to(const StackMapFrame* target, TRAPS) const {
|
||||||
bool match_flags = (_flags | target->flags()) == target->flags();
|
bool match_flags = (_flags | target->flags()) == target->flags();
|
||||||
|
|
||||||
return match_locals && match_stack &&
|
return match_locals && match_stack &&
|
||||||
(match_flags || has_flag_match_exception(target));
|
(match_flags || (is_exception_handler && has_flag_match_exception(target)));
|
||||||
}
|
}
|
||||||
|
|
||||||
VerificationType StackMapFrame::pop_stack_ex(VerificationType type, TRAPS) {
|
VerificationType StackMapFrame::pop_stack_ex(VerificationType type, TRAPS) {
|
||||||
|
|
|
@ -134,7 +134,8 @@ class StackMapFrame : public ResourceObj {
|
||||||
void copy_stack(const StackMapFrame* src);
|
void copy_stack(const StackMapFrame* src);
|
||||||
|
|
||||||
// Return true if this stack map frame is assignable to target.
|
// Return true if this stack map frame is assignable to target.
|
||||||
bool is_assignable_to(const StackMapFrame* target, TRAPS) const;
|
bool is_assignable_to(const StackMapFrame* target,
|
||||||
|
bool is_exception_handler, TRAPS) const;
|
||||||
|
|
||||||
// Push type into stack type array.
|
// Push type into stack type array.
|
||||||
inline void push_stack(VerificationType type, TRAPS) {
|
inline void push_stack(VerificationType type, TRAPS) {
|
||||||
|
|
|
@ -98,10 +98,13 @@ bool StackMapTable::match_stackmap(
|
||||||
bool result = true;
|
bool result = true;
|
||||||
StackMapFrame *stackmap_frame = _frame_array[frame_index];
|
StackMapFrame *stackmap_frame = _frame_array[frame_index];
|
||||||
if (match) {
|
if (match) {
|
||||||
|
// when checking handler target, match == true && update == false
|
||||||
|
bool is_exception_handler = !update;
|
||||||
// Has direct control flow from last instruction, need to match the two
|
// Has direct control flow from last instruction, need to match the two
|
||||||
// frames.
|
// frames.
|
||||||
result = frame->is_assignable_to(
|
result = frame->is_assignable_to(
|
||||||
stackmap_frame, CHECK_VERIFY_(frame->verifier(), false));
|
stackmap_frame, is_exception_handler,
|
||||||
|
CHECK_VERIFY_(frame->verifier(), false));
|
||||||
}
|
}
|
||||||
if (update) {
|
if (update) {
|
||||||
// Use the frame in stackmap table as current frame
|
// Use the frame in stackmap table as current frame
|
||||||
|
|
|
@ -301,6 +301,7 @@
|
||||||
template(dispatch_name, "dispatch") \
|
template(dispatch_name, "dispatch") \
|
||||||
template(getSystemClassLoader_name, "getSystemClassLoader") \
|
template(getSystemClassLoader_name, "getSystemClassLoader") \
|
||||||
template(fillInStackTrace_name, "fillInStackTrace") \
|
template(fillInStackTrace_name, "fillInStackTrace") \
|
||||||
|
template(fillInStackTrace0_name, "fillInStackTrace0") \
|
||||||
template(getCause_name, "getCause") \
|
template(getCause_name, "getCause") \
|
||||||
template(initCause_name, "initCause") \
|
template(initCause_name, "initCause") \
|
||||||
template(setProperty_name, "setProperty") \
|
template(setProperty_name, "setProperty") \
|
||||||
|
|
|
@ -59,7 +59,8 @@
|
||||||
#include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp"
|
#include "gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define DEFAULT_VENDOR_URL_BUG "http://java.sun.com/webapps/bugreport/crash.jsp"
|
// Note: This is a special bug reporting site for the JVM
|
||||||
|
#define DEFAULT_VENDOR_URL_BUG "http://bugreport.sun.com/bugreport/crash.jsp"
|
||||||
#define DEFAULT_JAVA_LAUNCHER "generic"
|
#define DEFAULT_JAVA_LAUNCHER "generic"
|
||||||
|
|
||||||
char** Arguments::_jvm_flags_array = NULL;
|
char** Arguments::_jvm_flags_array = NULL;
|
||||||
|
|
|
@ -1291,3 +1291,41 @@ bool os::is_server_class_machine() {
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Read file line by line, if line is longer than bsize,
|
||||||
|
// skip rest of line.
|
||||||
|
int os::get_line_chars(int fd, char* buf, const size_t bsize){
|
||||||
|
size_t sz, i = 0;
|
||||||
|
|
||||||
|
// read until EOF, EOL or buf is full
|
||||||
|
while ((sz = (int) read(fd, &buf[i], 1)) == 1 && i < (bsize-1) && buf[i] != '\n') {
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (buf[i] == '\n') {
|
||||||
|
// EOL reached so ignore EOL character and return
|
||||||
|
|
||||||
|
buf[i] = 0;
|
||||||
|
return (int) i;
|
||||||
|
}
|
||||||
|
|
||||||
|
buf[i+1] = 0;
|
||||||
|
|
||||||
|
if (sz != 1) {
|
||||||
|
// EOF reached. if we read chars before EOF return them and
|
||||||
|
// return EOF on next call otherwise return EOF
|
||||||
|
|
||||||
|
return (i == 0) ? -1 : (int) i;
|
||||||
|
}
|
||||||
|
|
||||||
|
// line is longer than size of buf, skip to EOL
|
||||||
|
int ch;
|
||||||
|
while (read(fd, &ch, 1) == 1 && ch != '\n') {
|
||||||
|
// Do nothing
|
||||||
|
}
|
||||||
|
|
||||||
|
// return initial part of line that fits in buf.
|
||||||
|
// If we reached EOF, it will be returned on next call.
|
||||||
|
|
||||||
|
return (int) i;
|
||||||
|
}
|
||||||
|
|
|
@ -658,6 +658,10 @@ class os: AllStatic {
|
||||||
// Hook for os specific jvm options that we don't want to abort on seeing
|
// Hook for os specific jvm options that we don't want to abort on seeing
|
||||||
static bool obsolete_option(const JavaVMOption *option);
|
static bool obsolete_option(const JavaVMOption *option);
|
||||||
|
|
||||||
|
// Read file line by line. If line is longer than bsize,
|
||||||
|
// rest of line is skipped. Returns number of bytes read or -1 on EOF
|
||||||
|
static int get_line_chars(int fd, char *buf, const size_t bsize);
|
||||||
|
|
||||||
// Platform dependent stuff
|
// Platform dependent stuff
|
||||||
#ifdef TARGET_OS_FAMILY_linux
|
#ifdef TARGET_OS_FAMILY_linux
|
||||||
# include "os_linux.hpp"
|
# include "os_linux.hpp"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
* @test
|
* @test
|
||||||
* @bug 6795161
|
* @bug 6795161
|
||||||
* @summary Escape analysis leads to data corruption
|
* @summary Escape analysis leads to data corruption
|
||||||
* @run main/othervm -server -Xcomp -XX:CompileOnly=Test -XX:+DoEscapeAnalysis Test
|
* @run main/othervm -server -XX:+IgnoreUnrecognizedVMOptions -Xcomp -XX:CompileOnly=Test -XX:+DoEscapeAnalysis Test
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class Test_Class_1 {
|
class Test_Class_1 {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue