From 97ce7486a4edcc9ed4d1aac8690b10f98ba7eb19 Mon Sep 17 00:00:00 2001 From: Liqun Liu Date: Fri, 11 Jan 2019 12:48:06 -0500 Subject: [PATCH] Switch to guarded static final field folding for VarHandle Signed-off-by: Liqun Liu --- runtime/compiler/compile/J9SymbolReferenceTable.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/compiler/compile/J9SymbolReferenceTable.cpp b/runtime/compiler/compile/J9SymbolReferenceTable.cpp index 0ea5033ac50..6dff9fefc4c 100644 --- a/runtime/compiler/compile/J9SymbolReferenceTable.cpp +++ b/runtime/compiler/compile/J9SymbolReferenceTable.cpp @@ -1417,7 +1417,7 @@ J9::SymbolReferenceTable::findOrCreateStaticSymbol(TR::ResolvedMethodSymbol * ow TR_OpaqueClassBlock *declaringClass = owningMethod->getDeclaringClassFromFieldOrStatic(comp(), cpIndex); if (declaringClass && fej9->isClassInitialized(declaringClass)) { - static const char *dontFoldVarHandle = feGetEnv("TR_DontFoldVarHandle"); + static const char *foldVarHandle = feGetEnv("TR_FoldVarHandleWithoutFear"); int32_t clazzNameLength = 0; char *clazzName = fej9->getClassNameChars(declaringClass, clazzNameLength); bool createKnownObject = false; @@ -1426,7 +1426,7 @@ J9::SymbolReferenceTable::findOrCreateStaticSymbol(TR::ResolvedMethodSymbol * ow { createKnownObject = true; } - else if (!dontFoldVarHandle + else if (foldVarHandle && (clazzNameLength != 16 || strncmp(clazzName, "java/lang/System", 16))) { TR_OpaqueClassBlock *varHandleClass = fej9->getSystemClassFromClassName("java/lang/invoke/VarHandle", 26);