< prev index next >

src/hotspot/share/ci/ciField.cpp

Print this page

        

*** 220,232 **** // Never trust strangely unstable finals: System.out, etc. return false; // Even if general trusting is disabled, trust system-built closures in these packages. if (holder->is_in_package("java/lang/invoke") || holder->is_in_package("sun/invoke")) return true; ! // Trust VM unsafe anonymous classes. They are private API (jdk.internal.misc.Unsafe) ! // and can't be serialized, so there is no hacking of finals going on with them. ! if (holder->is_unsafe_anonymous()) return true; // Trust final fields in all boxed classes if (holder->is_box_klass()) return true; // Trust final fields in String --- 220,233 ---- // Never trust strangely unstable finals: System.out, etc. return false; // Even if general trusting is disabled, trust system-built closures in these packages. if (holder->is_in_package("java/lang/invoke") || holder->is_in_package("sun/invoke")) return true; ! // Trust VM nonfindable and unsafe anonymous classes. They are created via Lookup.defineClass or ! // the private API (jdk.internal.misc.Unsafe) and can't be serialized, so there is no hacking ! // of finals going on with them. ! if (holder->is_nonfindable() || holder->is_unsafe_anonymous()) return true; // Trust final fields in all boxed classes if (holder->is_box_klass()) return true; // Trust final fields in String
< prev index next >