--- a/src/hotspot/share/memory/heapInspection.cpp Tue Jul 09 15:02:28 2019 -0700
+++ b/src/hotspot/share/memory/heapInspection.cpp Tue Jul 09 16:37:30 2019 -0700
@@ -123,7 +123,7 @@
KlassInfoEntry* KlassInfoBucket::lookup(Klass* const k) {
// Can happen if k is an archived class that we haven't loaded yet.
- if (k->java_mirror() == NULL) {
+ if (k->java_mirror_no_keepalive() == NULL) {
return NULL;
}
@@ -719,7 +719,7 @@
ResourceMark rm;
RecordInstanceClosure ric(cit, filter);
- Universe::heap()->object_iterate(&ric);
+ Universe::heap()->safe_object_iterate(&ric);
return ric.missed_count();
}
@@ -792,8 +792,5 @@
// Iterate over objects in the heap
FindInstanceClosure fic(k, result);
- // If this operation encounters a bad object when using CMS,
- // consider using safe_object_iterate() which avoids metadata
- // objects that may contain bad references.
- Universe::heap()->object_iterate(&fic);
+ Universe::heap()->safe_object_iterate(&fic);
}
--- a/src/hotspot/share/oops/klass.cpp Tue Jul 09 15:02:28 2019 -0700
+++ b/src/hotspot/share/oops/klass.cpp Tue Jul 09 16:37:30 2019 -0700
@@ -767,7 +767,7 @@
// Size Statistics
void Klass::collect_statistics(KlassSizeStats *sz) const {
sz->_klass_bytes = sz->count(this);
- sz->_mirror_bytes = sz->count(java_mirror());
+ sz->_mirror_bytes = sz->count(java_mirror_no_keepalive());
sz->_secondary_supers_bytes = sz->count_array(secondary_supers());
sz->_ro_bytes += sz->_secondary_supers_bytes;
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.api.directives.test/src/org/graalvm/compiler/api/directives/test/ProbabilityDirectiveTest.java Tue Jul 09 15:02:28 2019 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.api.directives.test/src/org/graalvm/compiler/api/directives/test/ProbabilityDirectiveTest.java Tue Jul 09 16:37:30 2019 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64StringLatin1InflateOp.java Tue Jul 09 15:02:28 2019 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64StringLatin1InflateOp.java Tue Jul 09 16:37:30 2019 -0700
@@ -29,11 +29,9 @@
import static jdk.vm.ci.amd64.AMD64.rdi;
import static jdk.vm.ci.amd64.AMD64.rdx;
import static jdk.vm.ci.amd64.AMD64.rsi;
-
import static jdk.vm.ci.code.ValueUtil.asRegister;
import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.REG;
-import jdk.vm.ci.amd64.AMD64;
import org.graalvm.compiler.asm.Label;
import org.graalvm.compiler.asm.amd64.AMD64Address;
import org.graalvm.compiler.asm.amd64.AMD64Assembler;
@@ -44,6 +42,7 @@
import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
import org.graalvm.compiler.lir.gen.LIRGeneratorTool;
+import jdk.vm.ci.amd64.AMD64;
import jdk.vm.ci.amd64.AMD64Kind;
import jdk.vm.ci.code.Register;
import jdk.vm.ci.meta.Value;
@@ -52,9 +51,13 @@
public final class AMD64StringLatin1InflateOp extends AMD64LIRInstruction {
public static final LIRInstructionClass<AMD64StringLatin1InflateOp> TYPE = LIRInstructionClass.create(AMD64StringLatin1InflateOp.class);
- @Alive({REG}) private Value rsrc;
- @Alive({REG}) private Value rdst;
- @Alive({REG}) private Value rlen;
+ @Use({REG}) private Value rsrc;
+ @Use({REG}) private Value rdst;
+ @Use({REG}) private Value rlen;
+
+ @Temp({REG}) private Value rsrcTemp;
+ @Temp({REG}) private Value rdstTemp;
+ @Temp({REG}) private Value rlenTemp;
@Temp({REG}) private Value vtmp1;
@Temp({REG}) private Value rtmp2;
@@ -66,9 +69,9 @@
assert asRegister(dst).equals(rdi);
assert asRegister(len).equals(rdx);
- rsrc = src;
- rdst = dst;
- rlen = len;
+ rsrcTemp = rsrc = src;
+ rdstTemp = rdst = dst;
+ rlenTemp = rlen = len;
vtmp1 = tool.newVariable(LIRKind.value(AMD64Kind.V512_BYTE));
rtmp2 = tool.newVariable(LIRKind.value(AMD64Kind.DWORD));
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64StringUTF16CompressOp.java Tue Jul 09 15:02:28 2019 -0700
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64StringUTF16CompressOp.java Tue Jul 09 16:37:30 2019 -0700
@@ -31,12 +31,10 @@
import static jdk.vm.ci.amd64.AMD64.rdi;
import static jdk.vm.ci.amd64.AMD64.rdx;
import static jdk.vm.ci.amd64.AMD64.rsi;
-
import static jdk.vm.ci.amd64.AMD64.rsp;
import static jdk.vm.ci.code.ValueUtil.asRegister;
import static org.graalvm.compiler.lir.LIRInstruction.OperandFlag.REG;
-import jdk.vm.ci.amd64.AMD64;
import org.graalvm.compiler.asm.Label;
import org.graalvm.compiler.asm.amd64.AMD64Address;
import org.graalvm.compiler.asm.amd64.AMD64Assembler;
@@ -47,6 +45,7 @@
import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
import org.graalvm.compiler.lir.gen.LIRGeneratorTool;
+import jdk.vm.ci.amd64.AMD64;
import jdk.vm.ci.amd64.AMD64Kind;
import jdk.vm.ci.code.Register;
import jdk.vm.ci.meta.Value;
@@ -56,9 +55,13 @@
public static final LIRInstructionClass<AMD64StringUTF16CompressOp> TYPE = LIRInstructionClass.create(AMD64StringUTF16CompressOp.class);
@Def({REG}) private Value rres;
- @Alive({REG}) private Value rsrc;
- @Alive({REG}) private Value rdst;
- @Alive({REG}) private Value rlen;
+ @Use({REG}) private Value rsrc;
+ @Use({REG}) private Value rdst;
+ @Use({REG}) private Value rlen;
+
+ @Temp({REG}) private Value rsrcTemp;
+ @Temp({REG}) private Value rdstTemp;
+ @Temp({REG}) private Value rlenTemp;
@Temp({REG}) private Value vtmp1;
@Temp({REG}) private Value vtmp2;
@@ -75,9 +78,9 @@
assert asRegister(res).equals(rax);
rres = res;
- rsrc = src;
- rdst = dst;
- rlen = len;
+ rsrcTemp = rsrc = src;
+ rdstTemp = rdst = dst;
+ rlenTemp = rlen = len;
LIRKind vkind = LIRKind.value(AMD64Kind.V512_BYTE);
--- a/src/jdk.localedata/share/classes/sun/text/resources/ext/FormatData_ja.java Tue Jul 09 15:02:28 2019 -0700
+++ b/src/jdk.localedata/share/classes/sun/text/resources/ext/FormatData_ja.java Tue Jul 09 16:37:30 2019 -0700
@@ -97,6 +97,10 @@
"\u6c11\u56fd\u524d",
"\u6c11\u56fd",
};
+ final String[] gregoryEras = {
+ "\u7d00\u5143\u524d",
+ "\u897f\u66a6",
+ };
return new Object[][] {
{ "MonthNames",
new String[] {
@@ -171,12 +175,8 @@
"\u5348\u5f8c" // pm marker
}
},
- { "Eras",
- new String[] { // era strings for GregorianCalendar
- "\u7d00\u5143\u524d",
- "\u897f\u66a6"
- }
- },
+ { "Eras", gregoryEras },
+ { "short.Eras", gregoryEras },
{ "buddhist.Eras",
new String[] { // era strings for Thai Buddhist calendar
"\u7d00\u5143\u524d", // Kigenzen
--- a/src/jdk.localedata/share/classes/sun/text/resources/ext/FormatData_zh.java Tue Jul 09 15:02:28 2019 -0700
+++ b/src/jdk.localedata/share/classes/sun/text/resources/ext/FormatData_zh.java Tue Jul 09 16:37:30 2019 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -88,6 +88,10 @@
"\u6c11\u56fd\u524d",
"\u6c11\u56fd",
};
+ final String[] gregoryEras = {
+ "\u516c\u5143\u524d",
+ "\u516c\u5143",
+ };
return new Object[][] {
{ "MonthNames",
new String[] {
@@ -263,12 +267,8 @@
"\u4e0b\u5348" // pm marker
}
},
- { "Eras",
- new String[] { // era strings
- "\u516c\u5143\u524d",
- "\u516c\u5143"
- }
- },
+ { "Eras", gregoryEras },
+ { "short.Eras", gregoryEras },
{ "buddhist.Eras",
new String[] {
"BC",
--- a/src/jdk.localedata/share/classes/sun/text/resources/ext/FormatData_zh_TW.java Tue Jul 09 15:02:28 2019 -0700
+++ b/src/jdk.localedata/share/classes/sun/text/resources/ext/FormatData_zh_TW.java Tue Jul 09 16:37:30 2019 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -88,13 +88,13 @@
"\u6c11\u570b\u524d",
"\u6c11\u570b",
};
+ final String[] gregoryEras = {
+ "\u897f\u5143\u524d",
+ "\u897f\u5143",
+ };
return new Object[][] {
- { "Eras",
- new String[] { // era strings
- "\u897f\u5143\u524d",
- "\u897f\u5143"
- }
- },
+ { "Eras", gregoryEras },
+ { "short.Eras", gregoryEras },
{ "standalone.MonthAbbreviations",
new String[] {
"1\u6708",
--- a/test/jdk/sun/text/resources/LocaleData Tue Jul 09 15:02:28 2019 -0700
+++ b/test/jdk/sun/text/resources/LocaleData Tue Jul 09 16:37:30 2019 -0700
@@ -8322,7 +8322,15 @@
# bug #8208746
CurrencyNames//ves=Venezuelan Bol\u00edvar Soberano
-# bug# 8206879
+# bug #8206879
# For Peru decimal separator is changed to dot(.) and grouping separator is changed to comma(,)
FormatData/es_PE/NumberElements/0=.
FormatData/es_PE/NumberElements/1=,
+
+# bug #8227127
+FormatData/ja/short.Eras/0=\u7d00\u5143\u524d
+FormatData/ja/short.Eras/1=\u897f\u66a6
+FormatData/zh/short.Eras/0=\u516c\u5143\u524d
+FormatData/zh/short.Eras/1=\u516c\u5143
+FormatData/zh_TW/short.Eras/0=\u897f\u5143\u524d
+FormatData/zh_TW/short.Eras/1=\u897f\u5143
--- a/test/jdk/sun/text/resources/LocaleDataTest.java Tue Jul 09 15:02:28 2019 -0700
+++ b/test/jdk/sun/text/resources/LocaleDataTest.java Tue Jul 09 16:37:30 2019 -0700
@@ -39,7 +39,7 @@
* 8017142 8037343 8055222 8042126 8074791 8075173 8080774 8129361 8134916
* 8145136 8145952 8164784 8037111 8081643 7037368 8178872 8185841 8190918
* 8187946 8195478 8181157 8179071 8193552 8202026 8204269 8202537 8208746
- * 8209775 8221432
+ * 8209775 8221432 8227127
* @summary Verify locale data
* @modules java.base/sun.util.resources
* @modules jdk.localedata