RFR: 8259839 SystemDictionary exports too much implementation [v3]

Coleen Phillimore coleenp at openjdk.java.net
Wed Jan 27 12:11:54 UTC 2021


> I apologize for the large change but it's really a bunch of little cleanups combined made while trying to understand the code.  Only number 8 below changes any behavior.  Tested with tier1-8 (24hr Dacapo is still running).
> 
> In systemDictionary.cpp:
>  1. moved placeholder table and other table sizes into systemDictionary.cpp
>  2. Made SystemDictionary::find_class() into a verification function called verify_dictionary_entry since that's what it was used for 
>  3. Moved a resolve_or_fail() down and removed redundant checks before calling handle_resolution_exception
>  4. Fixed some comments
>  5. child_name confused me. class_name and super_name are more meaningful in these contexts
>  6. callers of find_or_define_instance_class had to check for a different klass return (with AllowParallelDefineClass), or an exception in order to deallocate one of the classes, so I wrapped it into a function and renamed find_or_define_instance_class into find_or_define_helper.
>  7. find_placeholder() is really used to verify_placeholder(). Actually the verification was a nop. Fixing it found a bug in that CDS was calling define_instance_class rather than find_or_define_instance_class for parallelCapable class loader's that it shares, so verify_placeholder() was failing.  Changed the CDS code to call find_or_define_instance_class instead.
> 
> In systemDictionary.hpp, I moved the static data members and moved declarations around to make private and have a single protected block for SystemDictionaryShared to use.

Coleen Phillimore has updated the pull request incrementally with two additional commits since the last revision:

 - Fix comments and verify_placeholder
 - Fix handle_resolution_exception to make more sense.

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/2247/files
  - new: https://git.openjdk.java.net/jdk/pull/2247/files/f607762d..e003ad3c

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=2247&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=2247&range=01-02

  Stats: 39 lines in 1 file changed: 5 ins; 11 del; 23 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2247.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2247/head:pull/2247

PR: https://git.openjdk.java.net/jdk/pull/2247


More information about the hotspot-runtime-dev mailing list