Flag is used to specify set of packages to be deoptimized after class redefinition.
By default all classes are redefined that leads to performance drop.
Patch for jdk7u85 is applicable on jdk7u111 as well. Dcevm for
jdk7u85 is binary compatible up to jdk7u99. The binary compatibility
for newer java7 versions is broken therefore dcevm for jdk7u111 is
necessarry. Same for jdk8u102 and higher.
Patch for jdk7u85 is applicable on jdk7u111 as well. Dcevm for jdk7u85
is binary compatible up to jdk7u99. The binary compatibility for newer
java7 versions is broken therefore dcevm for jdk7u111 is necessarry.
Patch for jdk7u85 is applicable on jdk7u111 as well. Dcevm for jdk7u85
is binary compatible up to jdk7u99. The binary compatibility for newer
java7 versions is broken therefore dcevm for jdk7u111 is necessarry.
Clear constant pool cache entries which are related to
invokehandle/invokedynamic and ones which are unresolved
(have both bytecodes set to 0).
There are two cases when such entries could be non-empty
(have data in f1/f2):
1. invokedynamic/invokehandle-related entries in which f2 was
set during constant pool cache initialization.
2. put/get into static field when class having the field
is not initialized yet.
Previously, we didn't clear such entries as clearing f2 in
first case results in crash. However, if we don't clear f1
in the second case, we will not be able to initialize class
for the second time (to re-create all enum constants, for
example) as non-empty f2 will cause assertion to fail.
The current implementation uses free bit in constant pool cache
entry to mark all entries with resolved indices (case #1).
The clearing code preserves f2 for all such entries.