On Wed, 30 Nov 2022 16:54:02 GMT, Per Minborg <[email protected]> wrote:

> This PR proposes merging logic and optimising three classes that exist for 
> aix, maces and windows.
> 
> Optimisation will reduce byte code. Below is an example for one of the many 
> methods optimised.
> 
> Before:
> 
> public void implCloseSelectableChannel() throws java.io.IOException;
>   Code:
>      0: new           #7                  // class 
> java/lang/UnsupportedOperationException
>      3: dup
>      4: ldc           #11                 // String SCTP not supported on 
> this platform
>      6: invokespecial #13                 // Method 
> java/lang/UnsupportedOperationException."<init>":(Ljava/lang/String;)V
>      9: athrow
> 
> 
> After:
> 
> public void implCloseSelectableChannel() throws java.io.IOException;
>   Code:
>      0: invokestatic  #16                 // Method 
> sun/nio/ch/sctp/UnsupportedUtil.sctpUnsupported:()Ljava/lang/UnsupportedOperationException;
>      3: athrow

As the Solaris port is removed then it means the only implementation is on 
Linux. So one thing to try to is to rename src/jdk.sctp/unix to 
src/jdk.sctp/linux, src/jdk.sctp/windows/classes/sun/nio/ch/sctp/*  
tosrc/jdk.sctp/share/classes/sun/nio/ch/sctp/*  and remove the 
src/jdk.sctp/macos and src/jdk.sctp/aix tree. If it works then it would avoid 
needing to have 3 copies of the "unsupported" implementation and avoid include 
UnsupportedXXX classes in the Linux implementation.

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

PR: https://git.openjdk.org/jdk/pull/11436

Reply via email to