JBR-3646 Remove duplicated lambdaFormInvokers.cpp

This commit is contained in:
Vitaly Provodin
2021-07-28 08:46:37 +07:00
parent f18aaed3ce
commit d217c0224c
39 changed files with 257 additions and 86 deletions

View File

@@ -1,7 +1,7 @@
From 31b99ed2ae522245da54b85065e0f5f92f99afe6 Mon Sep 17 00:00:00 2001
From 621bd4318f792891d26387eb149415fb6454f439 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Wed, 14 Nov 2018 21:09:39 +0100
Subject: [PATCH 01/38] Apply basic dcevm11 patch
Subject: [PATCH 01/39] Apply basic dcevm11 patch
---
src/hotspot/share/ci/ciObjectFactory.cpp | 25 +
@@ -6016,10 +6016,10 @@ index 33ac08e5fe4..030ddd1f675 100644
Symbol* signature() const { return constants()->symbol_at(signature_index()); }
int signature_index() const { return constMethod()->signature_index(); }
diff --git a/src/hotspot/share/prims/jni.cpp b/src/hotspot/share/prims/jni.cpp
index 1bcd2be1327..ea6c501109e 100644
index 44327768465..9a81ffc9ea9 100644
--- a/src/hotspot/share/prims/jni.cpp
+++ b/src/hotspot/share/prims/jni.cpp
@@ -290,6 +290,7 @@ JNI_ENTRY(jclass, jni_DefineClass(JNIEnv *env, const char *name, jobject loaderR
@@ -291,6 +291,7 @@ JNI_ENTRY(jclass, jni_DefineClass(JNIEnv *env, const char *name, jobject loaderR
Klass* k = SystemDictionary::resolve_from_stream(&st, class_name,
class_loader,
cl_info,
@@ -6028,7 +6028,7 @@ index 1bcd2be1327..ea6c501109e 100644
if (log_is_enabled(Debug, class, resolve)) {
diff --git a/src/hotspot/share/prims/jvm.cpp b/src/hotspot/share/prims/jvm.cpp
index 91da785714b..2fcbbc10451 100644
index 575ebed679e..a7fe090ba01 100644
--- a/src/hotspot/share/prims/jvm.cpp
+++ b/src/hotspot/share/prims/jvm.cpp
@@ -870,6 +870,7 @@ static jclass jvm_define_class_common(const char *name,
@@ -8509,7 +8509,7 @@ index 00000000000..b712d69a193
+};
+#endif // SHARE_VM_PRIMS_JVMTIREDEFINECLASSES2_HPP
diff --git a/src/hotspot/share/prims/jvmtiEnv.cpp b/src/hotspot/share/prims/jvmtiEnv.cpp
index b8b408b4133..072d0085037 100644
index 2107b186c5e..6d1692949cb 100644
--- a/src/hotspot/share/prims/jvmtiEnv.cpp
+++ b/src/hotspot/share/prims/jvmtiEnv.cpp
@@ -54,6 +54,7 @@

View File

@@ -1,7 +1,7 @@
From c4b9c48ca30af7a1ccbb15c39603d101fdb1fa05 Mon Sep 17 00:00:00 2001
From 886db15df7d9a8cd45e2b539141a9ab823396203 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Wed, 14 Nov 2018 21:18:22 +0100
Subject: [PATCH 02/38] dcevm11 fixes
Subject: [PATCH 02/39] dcevm11 fixes
1. We need to set classRedefinitionCount on new class, not old class.

View File

@@ -1,7 +1,7 @@
From 2c6a833ac6213c37d77fc0049f394522da9bde42 Mon Sep 17 00:00:00 2001
From d937dae078891013a644c6a53eb17f8f5deb8ec8 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Wed, 11 Mar 2020 14:19:34 +0100
Subject: [PATCH 03/38] Fix class cast exception on redefinition of class A,
Subject: [PATCH 03/39] Fix class cast exception on redefinition of class A,
that is superclass of B that has anonymous class C
---

View File

@@ -1,7 +1,7 @@
From 81de9c8af45ece3bf559d2841283d72400fb6d95 Mon Sep 17 00:00:00 2001
From 53d50b53f83aa5135ff5092d0d566424024b8b4b Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 4 Oct 2020 21:12:12 +0200
Subject: [PATCH 04/38] Support for Lambda class redefinition
Subject: [PATCH 04/39] Support for Lambda class redefinition
---
.../share/classfile/classLoaderData.cpp | 9 +++
@@ -13,7 +13,7 @@ Subject: [PATCH 04/38] Support for Lambda class redefinition
6 files changed, 80 insertions(+), 9 deletions(-)
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index 897f61e0e44..66963dc0892 100644
index 340ffadf837..db50b3edee8 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -599,6 +599,15 @@ Dictionary* ClassLoaderData::create_dictionary() {

View File

@@ -1,7 +1,7 @@
From 7eb18b6a85c5e12e9535802de1410b8afa70d154 Mon Sep 17 00:00:00 2001
From 7bb6ea77608cd43cb7ca8c1ea8d492ae07789a0f Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 23 May 2020 10:02:15 +0200
Subject: [PATCH 05/38] Fix "no original bytecode found" error if method with
Subject: [PATCH 05/39] Fix "no original bytecode found" error if method with
bkp is missing
Sometimes IDE can deploy class with erroneous method, such method has

View File

@@ -1,7 +1,7 @@
From 3c2b51217b30ef8187caa4104584e28b10479444 Mon Sep 17 00:00:00 2001
From c40cd307310822e6e60c61931c14f97a8501f975 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 24 May 2020 12:07:42 +0200
Subject: [PATCH 06/38] Replace deleted method with
Subject: [PATCH 06/39] Replace deleted method with
Universe::throw_no_such_method_error
+ Change log level in advanced redefinition

View File

@@ -1,7 +1,7 @@
From 7212734f9d88a6031eeccc113a18c843fb0ff329 Mon Sep 17 00:00:00 2001
From a3775e77a2b4c5ec15051d5cfbf150fc67719d90 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Fri, 12 Jun 2020 17:43:52 +0200
Subject: [PATCH 07/38] Support for G1 gc
Subject: [PATCH 07/39] Support for G1 gc
---
src/hotspot/share/gc/g1/g1CollectedHeap.cpp | 23 +++

View File

@@ -1,7 +1,7 @@
From 3bb9ed50c68586e2d7b8f023bf6769fbf1eab592 Mon Sep 17 00:00:00 2001
From e062743b148a099a8593a3110d5f1d9156f4ca23 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Tue, 6 Oct 2020 22:15:31 +0200
Subject: [PATCH 08/38] AllowEnhancedClassRedefinition is false (disabled) by
Subject: [PATCH 08/39] AllowEnhancedClassRedefinition is false (disabled) by
default
---

View File

@@ -1,7 +1,7 @@
From 367de6fc71d0e760749aef56f35f51fc7b2b7fa7 Mon Sep 17 00:00:00 2001
From 703cb7aa230b6a159c7f1f86b749a8e0119ef881 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Mon, 19 Oct 2020 20:00:04 +0200
Subject: [PATCH 09/38] Set HOTSPOT_VM_DISTRO=Dynamic Code Evolution
Subject: [PATCH 09/39] Set HOTSPOT_VM_DISTRO=Dynamic Code Evolution
---
make/autoconf/version-numbers | 55 +++++++++++++++++++++++++++++++++++

View File

@@ -1,7 +1,7 @@
From f52e6eeb2f4a1c1259d4db2d1f69d448134f8954 Mon Sep 17 00:00:00 2001
From 3b4788c779cb9ffe2751e996bba3b445b474eba7 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Fri, 23 Oct 2020 10:20:26 +0200
Subject: [PATCH 10/38] Clear dcevm code separation
Subject: [PATCH 10/39] Clear dcevm code separation
---
src/hotspot/share/classfile/systemDictionary.cpp | 3 +--

View File

@@ -1,7 +1,7 @@
From 53ab74b497926ffaa0cc305c14fbccae2b3753e7 Mon Sep 17 00:00:00 2001
From bb8f91da24b2649507f2e200f1ff2bae2d2658bf Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Wed, 11 Nov 2020 18:45:15 +0100
Subject: [PATCH 11/38] Fix LoadedClassesClosure - fixes problems with remote
Subject: [PATCH 11/39] Fix LoadedClassesClosure - fixes problems with remote
debugging
---

View File

@@ -1,7 +1,7 @@
From c6a0608dad39442366635536e823862444fcf694 Mon Sep 17 00:00:00 2001
From 2dd09ce40a545a4256f990346e5cebf23dbf0b56 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Fri, 12 Feb 2021 10:10:02 +0100
Subject: [PATCH 12/38] dcevm15 - fix java15 compilation issues
Subject: [PATCH 12/39] dcevm15 - fix java15 compilation issues
---
.../share/classfile/classFileParser.hpp | 8 +-
@@ -65,7 +65,7 @@ index 0f94bc2501a..52ad6faa443 100644
ReferenceType reference_type() const { return _rt; }
AccessFlags access_flags() const { return _access_flags; }
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index 66963dc0892..63089614e84 100644
index db50b3edee8..2a826ff50a7 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -603,7 +603,7 @@ void ClassLoaderData::exchange_holders(ClassLoaderData* cld) {
@@ -391,7 +391,7 @@ index 17c1b27af7d..55ea76a8558 100644
CDS_JAVA_HEAP_ONLY(_archived_mirror_index = -1;)
_primary_supers[0] = this;
diff --git a/src/hotspot/share/prims/jvm.cpp b/src/hotspot/share/prims/jvm.cpp
index 2fcbbc10451..6acfd0b72fc 100644
index a7fe090ba01..2966343c835 100644
--- a/src/hotspot/share/prims/jvm.cpp
+++ b/src/hotspot/share/prims/jvm.cpp
@@ -958,6 +958,7 @@ static jclass jvm_lookup_define_class(jclass lookup, const char *name,
@@ -902,7 +902,7 @@ index 4c0412d343d..bd5e7d153be 100644
// Modifiable test must be shared between IsModifiableClass query
// and redefine implementation
diff --git a/src/hotspot/share/prims/jvmtiEnv.cpp b/src/hotspot/share/prims/jvmtiEnv.cpp
index 072d0085037..69393bc68c8 100644
index 6d1692949cb..8970d7991b7 100644
--- a/src/hotspot/share/prims/jvmtiEnv.cpp
+++ b/src/hotspot/share/prims/jvmtiEnv.cpp
@@ -454,20 +454,23 @@ JvmtiEnv::RetransformClasses(jint class_count, const jclass* classes) {

View File

@@ -1,7 +1,7 @@
From 2385fd082d347baf62ceb18e6e0fcd5d4f08298e Mon Sep 17 00:00:00 2001
From 9815ee603b27484953651bdc6d5705994a4d38aa Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 22 Nov 2020 19:51:46 +0100
Subject: [PATCH 13/38] dcevm15 - add ClassLoaderDataGraph_lock on
Subject: [PATCH 13/39] dcevm15 - add ClassLoaderDataGraph_lock on
ClassLoaderDataGraph::classes_do
ClassLoaderDataGraph::classes_do and need safepoint or lock,

View File

@@ -1,7 +1,7 @@
From 72a297152efd287c03298a481df3ba3a1b5a7d4a Mon Sep 17 00:00:00 2001
From d3e5f8acd389021128bb8a899bb538294de353f6 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 22 Nov 2020 12:05:50 +0100
Subject: [PATCH 14/38] dcevm15 - fix Universe::root_oops_do
Subject: [PATCH 14/39] dcevm15 - fix Universe::root_oops_do
Removed ClassLoaderDataGraph::cld_do was cause of crashes due multiple
oop patching. ClassLoaderDataGraph::cld_do replaced in dcevm15

View File

@@ -1,7 +1,7 @@
From 0676d4462cee266fdefdceee4e329bff20494835 Mon Sep 17 00:00:00 2001
From 574cddeb00c3d93bddbaf1845a7d9d3ffdced324 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 28 Nov 2020 19:29:42 +0100
Subject: [PATCH 15/38] dcevm15 - check if has_nestmate_access_to has newest
Subject: [PATCH 15/39] dcevm15 - check if has_nestmate_access_to has newest
host class
---

View File

@@ -1,7 +1,7 @@
From 2c7919de8ff5937a5a0e77684b0a91e6624d0389 Mon Sep 17 00:00:00 2001
From 983b4aaed2c56a74287b9400ddae4b7d7f3fd715 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 29 Nov 2020 17:18:16 +0100
Subject: [PATCH 16/38] dcevm15 - mark_as_scavengable only alive methods
Subject: [PATCH 16/39] dcevm15 - mark_as_scavengable only alive methods
---
.../share/prims/jvmtiEnhancedRedefineClasses.cpp | 14 ++++++++------

View File

@@ -1,7 +1,7 @@
From bbd6f9477ca90b67ade77447c925f9dce63fc3e4 Mon Sep 17 00:00:00 2001
From ed546016ead6064d8b95a9c1e4cdc6bc192f8d67 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 29 Nov 2020 20:05:03 +0100
Subject: [PATCH 17/38] dcevm15 - fix hidded classes
Subject: [PATCH 17/39] dcevm15 - fix hidded classes
---
.../prims/jvmtiEnhancedRedefineClasses.cpp | 41 ++++++++++++++-----

View File

@@ -1,7 +1,7 @@
From 59ec43b3330d8d55298a60252d909edf5e2edfb1 Mon Sep 17 00:00:00 2001
From 9983c44fe6903daba758ed0c43b8c86e738e0741 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 29 Nov 2020 20:08:57 +0100
Subject: [PATCH 18/38] dcevm15 - DON'T clear F2 in CP cache after indy
Subject: [PATCH 18/39] dcevm15 - DON'T clear F2 in CP cache after indy
unevolving
It's not clear why it was cleared in dcevm7-11

View File

@@ -1,7 +1,7 @@
From 33a4a1f90187557cb96d142769aac9de1d45b46f Mon Sep 17 00:00:00 2001
From 3b09df69c007285ea6c258388532a8e5f9fe3d45 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 22 Nov 2020 12:03:32 +0100
Subject: [PATCH 19/38] Cleanup and review comments
Subject: [PATCH 19/39] Cleanup and review comments
---
src/hotspot/share/classfile/classLoaderDataGraph.hpp | 2 +-

View File

@@ -1,7 +1,7 @@
From f075929d4e8f64385058633dd1bb53281d87ca46 Mon Sep 17 00:00:00 2001
From 5c41ecc9f48d22b81b3ac610e5655f1a74d25614 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Fri, 12 Feb 2021 10:11:10 +0100
Subject: [PATCH 20/38] Disable AllowEnhancedClassRedefinition in flight
Subject: [PATCH 20/39] Disable AllowEnhancedClassRedefinition in flight
recorder
---

View File

@@ -1,7 +1,7 @@
From d40ea5f57500b14254e5a1413f48e7f28af92646 Mon Sep 17 00:00:00 2001
From e560b33cdec3ef0e4ce91714663d3befa87ff4e5 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Fri, 12 Feb 2021 09:44:28 +0100
Subject: [PATCH 21/38] dcevm17 - fix compilation issues
Subject: [PATCH 21/39] dcevm17 - fix compilation issues
---
.../share/classfile/classLoaderData.cpp | 2 +-
@@ -26,7 +26,7 @@ Subject: [PATCH 21/38] dcevm17 - fix compilation issues
create mode 100644 src/hotspot/share/classfile/lambdaFormInvokers.cpp
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index 63089614e84..975a41c534f 100644
index 2a826ff50a7..65ce4c4af8c 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -603,7 +603,7 @@ void ClassLoaderData::exchange_holders(ClassLoaderData* cld) {

View File

@@ -1,7 +1,7 @@
From d3b4164d1e6b3f4e728a6f77c39cd3f375cb167c Mon Sep 17 00:00:00 2001
From 6e18ad67981ab5a1bbdac46e1e0c7cc80beb4a5b Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Fri, 12 Feb 2021 11:38:48 +0100
Subject: [PATCH 22/38] Fix crash on GrowableArray allocation in C_HEAP
Subject: [PATCH 22/39] Fix crash on GrowableArray allocation in C_HEAP
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 4 ++--

View File

@@ -1,7 +1,7 @@
From 21a50b944cc101081d9e3dfc2d2cb8dbd18e9b6d Mon Sep 17 00:00:00 2001
From 96680710816d9cd6e9cd8d5ce6dcbe054a7e53bd Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Fri, 12 Feb 2021 11:39:05 +0100
Subject: [PATCH 23/38] Rename confusing method name old_if_redefined to
Subject: [PATCH 23/39] Rename confusing method name old_if_redefined to
old_if_redefining
---

View File

@@ -1,7 +1,7 @@
From 7d3ff1dd95e436466431d05d7027bdf7ffd6954e Mon Sep 17 00:00:00 2001
From 5d10d789150dfa6f8366dceb7fce3251d725ab8a Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Fri, 12 Feb 2021 12:33:47 +0100
Subject: [PATCH 24/38] Check InstanceKlass::has_nestmate_access_to with active
Subject: [PATCH 24/39] Check InstanceKlass::has_nestmate_access_to with active
classes
Dcevm can leave old host in nested class if nested class is not

View File

@@ -1,7 +1,7 @@
From 50ee747462327f75122aae8863ccdc64b1468eee Mon Sep 17 00:00:00 2001
From dac9d7a7d87de680a50be7c2857646323c4c8ffa Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 13 Feb 2021 20:47:52 +0100
Subject: [PATCH 25/38] JBR-3111 Update class in all dictionaries where it was
Subject: [PATCH 25/39] JBR-3111 Update class in all dictionaries where it was
already defined
This patch keeps compatibility with std redefinition, that does not

View File

@@ -1,7 +1,7 @@
From 66a0c556f984e809875ca01bea09e3965727643f Mon Sep 17 00:00:00 2001
From f42115a3d488c93a2d163aebd030530f060dcef8 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 20 Feb 2021 15:47:47 +0100
Subject: [PATCH 26/38] Add ClassLoaderDataGraph_lock to define new class in
Subject: [PATCH 26/39] Add ClassLoaderDataGraph_lock to define new class in
enhanced redefiniton
ClassLoaderDataGraph locking for introduced in redefinition in

View File

@@ -1,7 +1,7 @@
From 186ef0cdf772fbde8cc75225bfa2a4e89ee5aaf0 Mon Sep 17 00:00:00 2001
From 30308e893e43425da166175f5f18f84abf2c6110 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Thu, 18 Jun 2020 18:40:11 +0200
Subject: [PATCH 27/38] JBR-3140 - support for modularized HotswapAgent
Subject: [PATCH 27/39] JBR-3140 - support for modularized HotswapAgent
Add -XX:HotswapAgent=[disabled,fatjar.core]
---

View File

@@ -1,7 +1,7 @@
From ce8df9ebb914f9bb72adb95341e702131f372df8 Mon Sep 17 00:00:00 2001
From 51f0036ff15d39330b787512af9e38d15c748e4b Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 7 Mar 2021 20:22:54 +0100
Subject: [PATCH 28/38] Support for redefinition of Well Known classses
Subject: [PATCH 28/39] Support for redefinition of Well Known classses
(java.*,jdk.*, sun.*)
---

View File

@@ -1,7 +1,7 @@
From dfc84494147277e0a8dbc23cce405953d4e5f740 Mon Sep 17 00:00:00 2001
From 6cde71e353f823f2df2d0875cd03b656fe060d5c Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 15 May 2021 10:31:28 +0200
Subject: [PATCH 29/38] Fix fastdebug compilation issues - cast_to_oop
Subject: [PATCH 29/39] Fix fastdebug compilation issues - cast_to_oop
---
.../share/gc/g1/g1FullGCCompactTask.cpp | 12 +++++-----

View File

@@ -1,7 +1,7 @@
From 4df74e407c5e17527f94005461578afafa367612 Mon Sep 17 00:00:00 2001
From 585e2f11d293081db5dc919fa8c13fb5bc7cbc53 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Fri, 19 Mar 2021 19:13:38 +0100
Subject: [PATCH 30/38] JBR-3458: Skip dynamic proxy classes based on
Subject: [PATCH 30/39] JBR-3458: Skip dynamic proxy classes based on
com.sun.proxy
---

View File

@@ -1,7 +1,7 @@
From 495e8b71fde3e235efe6a3bdd0d7356aeb429d9f Mon Sep 17 00:00:00 2001
From d4d56b7ad6cd8f73f7485cdc608655c014c55f3c Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sat, 20 Mar 2021 20:51:08 +0100
Subject: [PATCH 31/38] JBR-3459: Fix race condition in
Subject: [PATCH 31/39] JBR-3459: Fix race condition in
ClassLoaderDataGraph::classes_do
InstanceKlass in ClassLoaderData can be uninitialized when

View File

@@ -1,7 +1,7 @@
From 86d907a166219e35f6a289df6b1052aa6696600f Mon Sep 17 00:00:00 2001
From 5356c4dbbcc2564e401fc92b7680b870ee7070ec Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 15 May 2021 13:01:25 +0200
Subject: [PATCH 32/38] Fix compilation problems
Subject: [PATCH 32/39] Fix compilation problems
---
src/hotspot/share/oops/instanceKlass.cpp | 2 +-

View File

@@ -1,7 +1,7 @@
From c6cc03d79c7979c7f6e3324bc41d59638f62b98d Mon Sep 17 00:00:00 2001
From 3eb64e8ed65ae214091b55e497d24dff0eb1e353 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 20 Jun 2021 19:11:16 +0200
Subject: [PATCH 33/38] Fix dcevm issues related to refactorization of Thread
Subject: [PATCH 33/39] Fix dcevm issues related to refactorization of Thread
to JavaThread
---

View File

@@ -1,7 +1,7 @@
From 300ea1122dfc6d36f6bc55a626162b86dcb9bcc1 Mon Sep 17 00:00:00 2001
From db2d7cd0cd956f297c58baa7500c1440092648bf Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 20 Jun 2021 19:42:51 +0200
Subject: [PATCH 34/38] Fix init_method_MemberName after Thread to JavaThread
Subject: [PATCH 34/39] Fix init_method_MemberName after Thread to JavaThread
refactorization
---

View File

@@ -1,7 +1,7 @@
From 64cfa96654d5b2ed20a46c21e3856348de0f92f8 Mon Sep 17 00:00:00 2001
From bfbbae66340a223328542722b299f67c21166c52 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Mon, 21 Jun 2021 20:44:17 +0200
Subject: [PATCH 35/38] Fix "implicit conversion of NULL constant to 'bool'"
Subject: [PATCH 35/39] Fix "implicit conversion of NULL constant to 'bool'"
---
src/hotspot/share/prims/jvmtiRedefineClasses.cpp | 2 +-

View File

@@ -1,7 +1,7 @@
From 479791304c68ff53c64d75632450163f7b2c953e Mon Sep 17 00:00:00 2001
From 5bb6ef0fc266a748232c7c51191deab47d4f3857 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Wed, 30 Jun 2021 18:30:00 +0200
Subject: [PATCH 36/38] Fix, pass SystemDictionary::resolve_from_stream cl_info
Subject: [PATCH 36/39] Fix, pass SystemDictionary::resolve_from_stream cl_info
param
---

View File

@@ -1,7 +1,7 @@
From be8135ae36c87f4a9d63a93c420cd0e8c705e65b Mon Sep 17 00:00:00 2001
From 563e06d1c56cfc3f4e93e3975cd6c2dab8183c98 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Wed, 30 Jun 2021 18:50:38 +0200
Subject: [PATCH 37/38] Search for affected classes in all initialized classes
Subject: [PATCH 37/39] Search for affected classes in all initialized classes
in cld
Fix also case when lambda interface is redefined. Lambda class is
@@ -15,7 +15,7 @@ missing in cld dictionary since it is hidden since j17
5 files changed, 20 insertions(+), 17 deletions(-)
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index 975a41c534f..8c5e7d74569 100644
index 65ce4c4af8c..1c51e83e86e 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -337,6 +337,16 @@ void ClassLoaderData::classes_do(KlassClosure* klass_closure) {

View File

@@ -1,7 +1,7 @@
From 97c1f14dbf951a2fa2e65d9f3cd0f6ac7256a89b Mon Sep 17 00:00:00 2001
From acad06204bc4f7e7a89e9a44ded6b9d27082327b Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Wed, 30 Jun 2021 18:58:47 +0200
Subject: [PATCH 38/38] Fix compilation issue
Subject: [PATCH 38/39] Fix compilation issue
---
src/hotspot/share/interpreter/linkResolver.cpp | 4 ++--

View File

@@ -0,0 +1,171 @@
From 563465b112da14e8b81ef32eefc06c79015a809b Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Tue, 27 Jul 2021 21:32:51 +0200
Subject: [PATCH 39/39] Remove duplicated lambdaFormInvokers.cpp
---
.../share/classfile/lambdaFormInvokers.cpp | 152 ------------------
1 file changed, 152 deletions(-)
delete mode 100644 src/hotspot/share/classfile/lambdaFormInvokers.cpp
diff --git a/src/hotspot/share/classfile/lambdaFormInvokers.cpp b/src/hotspot/share/classfile/lambdaFormInvokers.cpp
deleted file mode 100644
index 281de58b482..00000000000
--- a/src/hotspot/share/classfile/lambdaFormInvokers.cpp
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (c) 2020, 2021, 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
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-#include "precompiled.hpp"
-#include "classfile/classLoadInfo.hpp"
-#include "classfile/classFileStream.hpp"
-#include "classfile/javaClasses.inline.hpp"
-#include "classfile/klassFactory.hpp"
-#include "classfile/lambdaFormInvokers.hpp"
-#include "classfile/symbolTable.hpp"
-#include "classfile/systemDictionary.hpp"
-#include "classfile/systemDictionaryShared.hpp"
-#include "classfile/vmClasses.hpp"
-#include "classfile/vmSymbols.hpp"
-#include "logging/log.hpp"
-#include "memory/oopFactory.hpp"
-#include "memory/metaspaceShared.hpp"
-#include "memory/resourceArea.hpp"
-#include "oops/instanceKlass.hpp"
-#include "oops/klass.hpp"
-#include "oops/objArrayKlass.hpp"
-#include "oops/objArrayOop.hpp"
-#include "oops/oop.inline.hpp"
-#include "oops/typeArrayOop.inline.hpp"
-#include "runtime/handles.inline.hpp"
-#include "runtime/javaCalls.hpp"
-
-GrowableArray<char*>* LambdaFormInvokers::_lambdaform_lines = NULL;
-
-void LambdaFormInvokers::append(char* line) {
- if (_lambdaform_lines == NULL) {
- _lambdaform_lines = new GrowableArray<char*>(100);
- }
- _lambdaform_lines->append(line);
-}
-
-void LambdaFormInvokers::regenerate_holder_classes(TRAPS) {
- assert(_lambdaform_lines != NULL, "Bad List");
- ResourceMark rm(THREAD);
-
- Symbol* cds_name = vmSymbols::jdk_internal_misc_CDS();
- Klass* cds_klass = SystemDictionary::resolve_or_null(cds_name, THREAD);
- guarantee(cds_klass != NULL, "jdk/internal/misc/CDS must exist!");
-
- int len = _lambdaform_lines->length();
- objArrayHandle list_lines = oopFactory::new_objArray_handle(vmClasses::String_klass(), len, CHECK);
- for (int i = 0; i < len; i++) {
- Handle h_line = java_lang_String::create_from_str(_lambdaform_lines->at(i), CHECK);
- list_lines->obj_at_put(i, h_line());
- }
-
- //
- // Object[] CDS.generateLambdaFormHolderClasses(String[] lines)
- // the returned Object[] layout:
- // name, byte[], name, byte[] ....
- Symbol* method = vmSymbols::generateLambdaFormHolderClasses();
- Symbol* signrs = vmSymbols::generateLambdaFormHolderClasses_signature();
-
- JavaValue result(T_OBJECT);
- JavaCalls::call_static(&result, cds_klass, method, signrs, list_lines, THREAD);
-
- if (HAS_PENDING_EXCEPTION) {
- log_info(cds)("%s: %s", THREAD->pending_exception()->klass()->external_name(),
- java_lang_String::as_utf8_string(java_lang_Throwable::message(THREAD->pending_exception())));
- CLEAR_PENDING_EXCEPTION;
- return;
- }
-
- objArrayHandle h_array(THREAD, (objArrayOop)result.get_oop());
- int sz = h_array->length();
- assert(sz % 2 == 0 && sz >= 2, "Must be even size of length");
- for (int i = 0; i < sz; i+= 2) {
- Handle h_name(THREAD, h_array->obj_at(i));
- typeArrayHandle h_bytes(THREAD, (typeArrayOop)h_array->obj_at(i+1));
- assert(h_name != NULL, "Class name is NULL");
- assert(h_bytes != NULL, "Class bytes is NULL");
-
- char *class_name = java_lang_String::as_utf8_string(h_name());
- int len = h_bytes->length();
- // make a copy of class bytes so GC will not affect us.
- char *buf = resource_allocate_bytes(THREAD, len);
- memcpy(buf, (char*)h_bytes->byte_at_addr(0), len);
- ClassFileStream st((u1*)buf, len, NULL, ClassFileStream::verify);
-
- reload_class(class_name, st, THREAD);
- // free buf
- resource_free_bytes(buf, len);
-
- if (HAS_PENDING_EXCEPTION) {
- log_info(cds)("Exception happened: %s", PENDING_EXCEPTION->klass()->name()->as_C_string());
- log_info(cds)("Could not create InstanceKlass for class %s", class_name);
- CLEAR_PENDING_EXCEPTION;
- return;
- }
- }
-}
-
-// class_handle - the class name, bytes_handle - the class bytes
-void LambdaFormInvokers::reload_class(char* name, ClassFileStream& st, TRAPS) {
- Symbol* class_name = SymbolTable::new_symbol((const char*)name);
- // the class must exist
- Klass* klass = SystemDictionary::resolve_or_null(class_name, THREAD);
- if (klass == NULL) {
- log_info(cds)("Class %s not present, skip", name);
- return;
- }
- assert(klass->is_instance_klass(), "Should be");
-
- ClassLoaderData* cld = ClassLoaderData::the_null_class_loader_data();
- Handle protection_domain;
- ClassLoadInfo cl_info(protection_domain);
-
- InstanceKlass* result = KlassFactory::create_from_stream(&st,
- class_name,
- cld,
- cl_info,
- false,
- CHECK);
-
- {
- MutexLocker mu_r(THREAD, Compile_lock); // add_to_hierarchy asserts this.
- SystemDictionary::add_to_hierarchy(result);
- }
- // new class not linked yet.
- MetaspaceShared::try_link_class(THREAD, result);
- assert(!HAS_PENDING_EXCEPTION, "Invariant");
-
- // exclude the existing class from dump
- SystemDictionaryShared::set_excluded(InstanceKlass::cast(klass));
- log_info(cds, lambda)("Replaced class %s, old: %p new: %p", name, klass, result);
-}
--
2.23.0