On Thu, 8 Jun 2023 09:26:10 GMT, Adam Sotona <asot...@openjdk.org> wrote:

>> Classfile context object and multi-state options have been discussed at 
>> https://mail.openjdk.org/pipermail/classfile-api-dev/2023-May/000321.html
>> This patch implements the proposed changes in Classfile API and fixes all 
>> affected code across JDK sources and tests.
>> 
>> Please review.
>> 
>> Thanks,
>> Adam
>
> Adam Sotona has updated the pull request with a new target base due to a 
> merge or a rebase. The pull request now contains 29 commits:
> 
>  - removal of ClassHierarchyImpl.DEFAULT_RESOLVER
>    introduction of ClassHierarchyResolver::ofSystem factory method
>    ClassfileImpl does not pre-initialize ClassHierarchyResolverOption with 
> default
>  - Merge branch 'master' into JDK-8308899-context
>    
>    # Conflicts:
>    #  src/java.base/share/classes/jdk/internal/classfile/impl/Options.java
>    #  
> src/java.base/share/classes/jdk/internal/classfile/snippet-files/PackageSnippets.java
>    #  test/jdk/jdk/classfile/ClassHierarchyInfoTest.java
>    #  test/jdk/jdk/classfile/VerifierSelfTest.java
>  - Merge branch 'master' into JDK-8308899-context
>    
>    # Conflicts:
>    #  src/java.base/share/classes/jdk/internal/classfile/Classfile.java
>    #  
> src/java.base/share/classes/jdk/internal/classfile/impl/DirectCodeBuilder.java
>    #  test/jdk/jdk/classfile/DiscontinuedInstructionsTest.java
>    #  test/jdk/jdk/classfile/FilterDeadLabelsTest.java
>    #  test/jdk/jdk/classfile/ShortJumpsFixTest.java
>    #  test/jdk/jdk/classfile/StackMapsTest.java
>  - added missing javadoc
>  - simplified options names
>  - fixed copyright header
>  - Merge branch 'master' into JDK-8308899-context
>  - fixed StackMapGenerator::generatorError and removed obsolete 
> SplitConstantPool clone constructor
>  - Merge branch 'master' into JDK-8308899-context
>  - fixed benchmarks
>  - ... and 19 more: https://git.openjdk.org/jdk/compare/ac3ce2bf...aa691842

Agreed.  The need for sync came from the shared static cache.

On 6/8/2023 7:07 AM, liach wrote:
>
> ***@***.**** commented on this pull request.
>
> ------------------------------------------------------------------------
>
> In 
> src/java.base/share/classes/jdk/internal/classfile/ClassHierarchyResolver.java
>  
> <https://github.com/openjdk/jdk/pull/14180#discussion_r1222886769>:
>
> >       */
> -    static ClassHierarchyResolver defaultResolver() {
> -        return ClassHierarchyImpl.DEFAULT_RESOLVER;
> +    static ClassHierarchyResolver ofSystem() {
> +        var sysLoader = ClassLoader.getSystemClassLoader();
> +        return ClassHierarchyResolver
> +            .ofResourceParsing(sysLoader)
> +            .orElse(ClassHierarchyResolver.ofClassLoading(sysLoader))
> +            .cached(new Supplier<>() {
> +                @Override
> +                public Map<ClassDesc, 
> ClassHierarchyResolver.ClassHierarchyInfo> get() {
> +                    return new ConcurrentHashMap<>();
>
> Don't think we need to synchronize the cache if we have dedicated CHRs.
>
> —
> Reply to this email directly, view it on GitHub 
> <https://github.com/openjdk/jdk/pull/14180#pullrequestreview-1469667725>, 
> or unsubscribe 
> <https://github.com/notifications/unsubscribe-auth/AABJ4REUYN64IMQFDM5XPO3XKGW7JANCNFSM6AAAAAAYQLACYQ>.
> You are receiving this because you commented.Message ID: 
> ***@***.***>
>

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

PR Comment: https://git.openjdk.org/jdk/pull/14180#issuecomment-1582385327

Reply via email to