public class com.oracle.svm.core.windows.WindowsSystemPropertiesSupport extends com.oracle.svm.core.jdk.SystemPropertiesSupport
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.core.windows.WindowsSystemPropertiesSupport
super_class: com.oracle.svm.core.jdk.SystemPropertiesSupport
{
private static final byte[] USERNAME;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] KERNEL32_DLL;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] ROOT_PATH;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int VER_NT_WORKSTATION;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int VER_PLATFORM_WIN32_WINDOWS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int VER_PLATFORM_WIN32_NT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private org.graalvm.collections.Pair<java.lang.String, java.lang.String> cachedOsNameAndVersion;
descriptor: Lorg/graalvm/collections/Pair;
flags: (0x0002) ACC_PRIVATE
Signature: Lorg/graalvm/collections/Pair<Ljava/lang/String;Ljava/lang/String;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc "USERNAME\u0000"
getstatic java.nio.charset.StandardCharsets.UTF_16LE:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
putstatic com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.USERNAME:[B
1: ldc "\\kernel32.dll\u0000"
getstatic java.nio.charset.StandardCharsets.UTF_16LE:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
putstatic com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.KERNEL32_DLL:[B
2: ldc "\\\u0000"
getstatic java.nio.charset.StandardCharsets.UTF_16LE:Ljava/nio/charset/Charset;
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
putstatic com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.ROOT_PATH:[B
3: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.svm.core.jdk.SystemPropertiesSupport.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/core/windows/WindowsSystemPropertiesSupport;
protected java.lang.String userNameValue();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=5, args_size=1
start local 0 0: getstatic com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.USERNAME:[B
invokestatic com.oracle.svm.core.c.NonmovableArrays.fromImageHeap:(Ljava/lang/Object;)Lcom/oracle/svm/core/c/NonmovableArray;
iconst_0
invokestatic com.oracle.svm.core.c.NonmovableArrays.addressOf:(Lcom/oracle/svm/core/c/NonmovableArray;I)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.windows.headers.LibC$WCharPointer
invokestatic com.oracle.svm.core.windows.headers.LibC._wgetenv:(Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;)Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;
astore 1
start local 1 1: aload 1
invokestatic com.oracle.svm.core.windows.headers.LibC.wcslen:(Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;)Lorg/graalvm/word/UnsignedWord;
astore 2
start local 2 2: aload 1
invokeinterface com.oracle.svm.core.windows.headers.LibC$WCharPointer.isNonNull:()Z
ifeq 4
aload 2
iconst_0
invokeinterface org.graalvm.word.UnsignedWord.aboveThan:(I)Z
ifeq 4
3: aload 1
aload 2
invokestatic com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.toJavaString:(Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;Lorg/graalvm/word/UnsignedWord;)Ljava/lang/String;
areturn
4: StackMap locals: com.oracle.svm.core.windows.headers.LibC$WCharPointer org.graalvm.word.UnsignedWord
StackMap stack:
sipush 257
istore 3
start local 3 5: iload 3
ldc Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;
invokestatic org.graalvm.nativeimage.StackValue.get:(ILjava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.windows.headers.LibC$WCharPointer
astore 1
6: ldc Lorg/graalvm/nativeimage/c/type/CIntPointer;
invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.nativeimage.c.type.CIntPointer
astore 4
start local 4 7: aload 4
iload 3
invokeinterface org.graalvm.nativeimage.c.type.CIntPointer.write:(I)V
8: aload 1
aload 4
invokestatic com.oracle.svm.core.windows.headers.WinBase.GetUserNameW:(Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;Lorg/graalvm/nativeimage/c/type/CIntPointer;)I
ifne 10
9: ldc "unknown"
areturn
10: StackMap locals: int org.graalvm.nativeimage.c.type.CIntPointer
StackMap stack:
aload 1
aload 4
invokeinterface org.graalvm.nativeimage.c.type.CIntPointer.read:()I
iconst_1
isub
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.toJavaString:(Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;Lorg/graalvm/word/UnsignedWord;)Ljava/lang/String;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/oracle/svm/core/windows/WindowsSystemPropertiesSupport;
1 11 1 userName Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;
2 11 2 length Lorg/graalvm/word/UnsignedWord;
5 11 3 maxLength I
7 11 4 lengthPointer Lorg/graalvm/nativeimage/c/type/CIntPointer;
protected java.lang.String userHomeValue();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=6, args_size=1
start local 0 0: ldc Lcom/oracle/svm/core/windows/headers/WinBase$LPHANDLE;
invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.windows.headers.WinBase$LPHANDLE
astore 1
start local 1 1: invokestatic com.oracle.svm.core.windows.headers.Process.GetCurrentProcess:()Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;
invokestatic com.oracle.svm.core.windows.headers.Process.TOKEN_QUERY:()I
aload 1
invokestatic com.oracle.svm.core.windows.headers.Process.OpenProcessToken:(Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;ILcom/oracle/svm/core/windows/headers/WinBase$LPHANDLE;)I
ifne 3
2: ldc "C:\\"
areturn
3: StackMap locals: com.oracle.svm.core.windows.headers.WinBase$LPHANDLE
StackMap stack:
sipush 261
istore 2
start local 2 4: ldc Lorg/graalvm/nativeimage/c/type/CIntPointer;
invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.nativeimage.c.type.CIntPointer
astore 3
start local 3 5: aload 3
iload 2
invokeinterface org.graalvm.nativeimage.c.type.CIntPointer.write:(I)V
6: iload 2
ldc Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;
invokestatic org.graalvm.nativeimage.StackValue.get:(ILjava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.windows.headers.LibC$WCharPointer
astore 4
start local 4 7: aload 1
invokeinterface com.oracle.svm.core.windows.headers.WinBase$LPHANDLE.read:()Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;
aload 4
aload 3
invokestatic com.oracle.svm.core.windows.headers.WinBase.GetUserProfileDirectoryW:(Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;Lorg/graalvm/nativeimage/c/type/CIntPointer;)I
istore 5
start local 5 8: aload 1
invokeinterface com.oracle.svm.core.windows.headers.WinBase$LPHANDLE.read:()Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;
invokestatic com.oracle.svm.core.windows.headers.WinBase.CloseHandle:(Lcom/oracle/svm/core/windows/headers/WinBase$HANDLE;)I
pop
9: iload 5
ifne 11
10: ldc "C:\\"
areturn
11: StackMap locals: com.oracle.svm.core.windows.WindowsSystemPropertiesSupport com.oracle.svm.core.windows.headers.WinBase$LPHANDLE int org.graalvm.nativeimage.c.type.CIntPointer com.oracle.svm.core.windows.headers.LibC$WCharPointer int
StackMap stack:
aload 4
aload 3
invokeinterface org.graalvm.nativeimage.c.type.CIntPointer.read:()I
iconst_1
isub
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.toJavaString:(Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;Lorg/graalvm/word/UnsignedWord;)Ljava/lang/String;
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/svm/core/windows/WindowsSystemPropertiesSupport;
1 12 1 tokenHandle Lcom/oracle/svm/core/windows/headers/WinBase$LPHANDLE;
4 12 2 initialLen I
5 12 3 buffLenPointer Lorg/graalvm/nativeimage/c/type/CIntPointer;
7 12 4 userHome Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;
8 12 5 result I
protected java.lang.String userDirValue();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=1
start local 0 0: sipush 260
istore 1
start local 1 1: iload 1
ldc Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;
invokestatic org.graalvm.nativeimage.StackValue.get:(ILjava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.windows.headers.LibC$WCharPointer
astore 2
start local 2 2: iload 1
aload 2
invokestatic com.oracle.svm.core.windows.headers.WinBase.GetCurrentDirectoryW:(ILcom/oracle/svm/core/windows/headers/LibC$WCharPointer;)I
istore 3
start local 3 3: iload 3
ifle 4
iload 3
iload 1
if_icmpge 4
iconst_1
goto 5
StackMap locals: int com.oracle.svm.core.windows.headers.LibC$WCharPointer int
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: ldc "Could not determine value of user.dir"
invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
6: aload 2
iload 3
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.toJavaString:(Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;Lorg/graalvm/word/UnsignedWord;)Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/core/windows/WindowsSystemPropertiesSupport;
1 7 1 maxLength I
2 7 2 userDir Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;
3 7 3 length I
protected java.lang.String tmpdirValue();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=4, args_size=1
start local 0 0: sipush 261
istore 1
start local 1 1: iload 1
ldc Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;
invokestatic org.graalvm.nativeimage.StackValue.get:(ILjava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.windows.headers.LibC$WCharPointer
astore 2
start local 2 2: iload 1
aload 2
invokestatic com.oracle.svm.core.windows.headers.FileAPI.GetTempPathW:(ILcom/oracle/svm/core/windows/headers/LibC$WCharPointer;)I
istore 3
start local 3 3: iload 3
ifle 4
iconst_1
goto 5
StackMap locals: int com.oracle.svm.core.windows.headers.LibC$WCharPointer int
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: ldc "Could not determine value of java.io.tmpdir"
invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
6: aload 2
iload 3
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.toJavaString:(Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;Lorg/graalvm/word/UnsignedWord;)Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/core/windows/WindowsSystemPropertiesSupport;
1 7 1 maxLength I
2 7 2 tmpdir Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;
3 7 3 length I
private static java.lang.String (com.oracle.svm.core.windows.headers.LibC$WCharPointer, org.graalvm.word.UnsignedWord);
descriptor: (Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;Lorg/graalvm/word/UnsignedWord;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
checkcast org.graalvm.nativeimage.c.type.CCharPointer
ldc Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;
invokestatic org.graalvm.nativeimage.c.struct.SizeOf.unsigned:(Ljava/lang/Class;)Lorg/graalvm/word/UnsignedWord;
aload 1
invokeinterface org.graalvm.word.UnsignedWord.multiply:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/UnsignedWord;
getstatic java.nio.charset.StandardCharsets.UTF_16LE:Ljava/nio/charset/Charset;
invokestatic org.graalvm.nativeimage.c.type.CTypeConversion.toJavaString:(Lorg/graalvm/nativeimage/c/type/CCharPointer;Lorg/graalvm/word/UnsignedWord;Ljava/nio/charset/Charset;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 wcString Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;
0 1 1 length Lorg/graalvm/word/UnsignedWord;
MethodParameters:
Name Flags
wcString
length
protected java.lang.String osNameValue();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.cachedOsNameAndVersion:Lorg/graalvm/collections/Pair;
ifnonnull 2
1: aload 0
aload 0
invokevirtual com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.getOsNameAndVersion:()Lorg/graalvm/collections/Pair;
putfield com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.cachedOsNameAndVersion:Lorg/graalvm/collections/Pair;
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.cachedOsNameAndVersion:Lorg/graalvm/collections/Pair;
invokevirtual org.graalvm.collections.Pair.getLeft:()Ljava/lang/Object;
checkcast java.lang.String
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/windows/WindowsSystemPropertiesSupport;
protected java.lang.String osVersionValue();
descriptor: ()Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.cachedOsNameAndVersion:Lorg/graalvm/collections/Pair;
ifnonnull 2
1: aload 0
aload 0
invokevirtual com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.getOsNameAndVersion:()Lorg/graalvm/collections/Pair;
putfield com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.cachedOsNameAndVersion:Lorg/graalvm/collections/Pair;
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.cachedOsNameAndVersion:Lorg/graalvm/collections/Pair;
invokevirtual org.graalvm.collections.Pair.getRight:()Ljava/lang/Object;
checkcast java.lang.String
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/core/windows/WindowsSystemPropertiesSupport;
public org.graalvm.collections.Pair<java.lang.String, java.lang.String> getOsNameAndVersion();
descriptor: ()Lorg/graalvm/collections/Pair;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=18, args_size=1
start local 0 0: ldc Lcom/oracle/svm/core/windows/headers/SysinfoAPI$OSVERSIONINFOEXA;
invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.windows.headers.SysinfoAPI$OSVERSIONINFOEXA
astore 1
start local 1 1: aload 1
ldc Lcom/oracle/svm/core/windows/headers/SysinfoAPI$OSVERSIONINFOEXA;
invokestatic org.graalvm.nativeimage.c.struct.SizeOf.get:(Ljava/lang/Class;)I
invokeinterface com.oracle.svm.core.windows.headers.SysinfoAPI$OSVERSIONINFOEXA.dwOSVersionInfoSize:(I)V
2: aload 1
invokestatic com.oracle.svm.core.windows.headers.SysinfoAPI.GetVersionExA:(Lcom/oracle/svm/core/windows/headers/SysinfoAPI$OSVERSIONINFOEXA;)I
pop
3: ldc Lorg/graalvm/nativeimage/Platform;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast org.graalvm.nativeimage.Platform
invokeinterface org.graalvm.nativeimage.Platform.getArchitecture:()Ljava/lang/String;
ldc "64"
invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
istore 2
start local 2 4: aload 1
invokeinterface com.oracle.svm.core.windows.headers.SysinfoAPI$OSVERSIONINFOEXA.wProductType:()B
iconst_1
if_icmpne 5
iconst_1
goto 6
StackMap locals: com.oracle.svm.core.windows.headers.SysinfoAPI$OSVERSIONINFOEXA int
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 3
start local 3 7: aload 1
invokeinterface com.oracle.svm.core.windows.headers.SysinfoAPI$OSVERSIONINFOEXA.dwPlatformId:()I
istore 4
start local 4 8: aload 1
invokeinterface com.oracle.svm.core.windows.headers.SysinfoAPI$OSVERSIONINFOEXA.dwMajorVersion:()I
istore 5
start local 5 9: aload 1
invokeinterface com.oracle.svm.core.windows.headers.SysinfoAPI$OSVERSIONINFOEXA.dwMinorVersion:()I
istore 6
start local 6 10: aload 1
invokeinterface com.oracle.svm.core.windows.headers.SysinfoAPI$OSVERSIONINFOEXA.dwBuildNumber:()I
istore 7
start local 7 11: sipush 260
ldc Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;
invokestatic org.graalvm.nativeimage.StackValue.get:(ILjava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.windows.headers.LibC$WCharPointer
astore 8
start local 8 12: getstatic com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.KERNEL32_DLL:[B
invokestatic com.oracle.svm.core.c.NonmovableArrays.fromImageHeap:(Ljava/lang/Object;)Lcom/oracle/svm/core/c/NonmovableArray;
iconst_0
invokestatic com.oracle.svm.core.c.NonmovableArrays.addressOf:(Lcom/oracle/svm/core/c/NonmovableArray;I)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.windows.headers.LibC$WCharPointer
astore 9
start local 9 13: sipush 260
aload 9
invokestatic com.oracle.svm.core.windows.headers.LibC.wcslen:(Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;)Lorg/graalvm/word/UnsignedWord;
invokeinterface org.graalvm.word.UnsignedWord.rawValue:()J
l2i
isub
iconst_1
isub
istore 10
start local 10 14: aload 8
iload 10
invokestatic com.oracle.svm.core.windows.headers.SysinfoAPI.GetSystemDirectoryW:(Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;I)I
istore 11
start local 11 15: iload 11
ifeq 38
iload 11
iload 10
if_icmple 17
16: goto 38
17: StackMap locals: com.oracle.svm.core.windows.WindowsSystemPropertiesSupport com.oracle.svm.core.windows.headers.SysinfoAPI$OSVERSIONINFOEXA int int int int int int com.oracle.svm.core.windows.headers.LibC$WCharPointer com.oracle.svm.core.windows.headers.LibC$WCharPointer int int
StackMap stack:
aload 8
aload 9
sipush 260
iload 11
isub
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.windows.headers.LibC.wcsncat:(Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;Lorg/graalvm/word/UnsignedWord;)Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;
pop
18: aload 8
invokestatic org.graalvm.word.WordFactory.nullPointer:()Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.nativeimage.c.type.CIntPointer
invokestatic com.oracle.svm.core.windows.headers.WinVer.GetFileVersionInfoSizeW:(Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;Lorg/graalvm/nativeimage/c/type/CIntPointer;)I
istore 12
start local 12 19: iload 12
ifne 21
20: goto 38
21: StackMap locals: int
StackMap stack:
iload 12
invokestatic org.graalvm.word.WordFactory.unsigned:(I)Lorg/graalvm/word/UnsignedWord;
invokestatic com.oracle.svm.core.windows.headers.LibC.malloc:(Lorg/graalvm/word/UnsignedWord;)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.nativeimage.c.type.VoidPointer
astore 13
start local 13 22: aload 13
invokeinterface org.graalvm.nativeimage.c.type.VoidPointer.isNull:()Z
ifeq 24
23: goto 38
24: StackMap locals: org.graalvm.nativeimage.c.type.VoidPointer
StackMap stack:
aload 8
iconst_0
iload 12
aload 13
invokestatic com.oracle.svm.core.windows.headers.WinVer.GetFileVersionInfoW:(Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;IILorg/graalvm/nativeimage/c/type/VoidPointer;)I
ifne 27
25: aload 13
invokestatic com.oracle.svm.core.windows.headers.LibC.free:(Lorg/graalvm/word/PointerBase;)V
26: goto 38
27: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.windows.WindowsSystemPropertiesSupport.ROOT_PATH:[B
invokestatic com.oracle.svm.core.c.NonmovableArrays.fromImageHeap:(Ljava/lang/Object;)Lcom/oracle/svm/core/c/NonmovableArray;
iconst_0
invokestatic com.oracle.svm.core.c.NonmovableArrays.addressOf:(Lcom/oracle/svm/core/c/NonmovableArray;I)Lorg/graalvm/word/PointerBase;
checkcast com.oracle.svm.core.windows.headers.LibC$WCharPointer
astore 14
start local 14 28: ldc Lorg/graalvm/nativeimage/c/type/WordPointer;
invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.nativeimage.c.type.WordPointer
astore 15
start local 15 29: ldc Lorg/graalvm/nativeimage/c/type/CIntPointer;
invokestatic org.graalvm.nativeimage.StackValue.get:(Ljava/lang/Class;)Lorg/graalvm/word/PointerBase;
checkcast org.graalvm.nativeimage.c.type.CIntPointer
astore 16
start local 16 30: aload 13
aload 14
aload 15
aload 16
invokestatic com.oracle.svm.core.windows.headers.WinVer.VerQueryValueW:(Lorg/graalvm/nativeimage/c/type/VoidPointer;Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;Lorg/graalvm/nativeimage/c/type/WordPointer;Lorg/graalvm/nativeimage/c/type/CIntPointer;)I
ifne 33
31: aload 13
invokestatic com.oracle.svm.core.windows.headers.LibC.free:(Lorg/graalvm/word/PointerBase;)V
32: goto 38
33: StackMap locals: com.oracle.svm.core.windows.headers.LibC$WCharPointer org.graalvm.nativeimage.c.type.WordPointer org.graalvm.nativeimage.c.type.CIntPointer
StackMap stack:
aload 15
invokeinterface org.graalvm.nativeimage.c.type.WordPointer.read:()Lorg/graalvm/word/WordBase;
checkcast com.oracle.svm.core.windows.headers.VerRsrc$VS_FIXEDFILEINFO
astore 17
start local 17 34: aload 17
invokeinterface com.oracle.svm.core.windows.headers.VerRsrc$VS_FIXEDFILEINFO.dwProductVersionMS:()I
bipush 16
ishr
i2s
istore 5
35: aload 17
invokeinterface com.oracle.svm.core.windows.headers.VerRsrc$VS_FIXEDFILEINFO.dwProductVersionMS:()I
i2s
istore 6
36: aload 17
invokeinterface com.oracle.svm.core.windows.headers.VerRsrc$VS_FIXEDFILEINFO.dwProductVersionLS:()I
bipush 16
ishr
i2s
istore 7
37: aload 13
invokestatic com.oracle.svm.core.windows.headers.LibC.free:(Lorg/graalvm/word/PointerBase;)V
end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 38: StackMap locals: com.oracle.svm.core.windows.WindowsSystemPropertiesSupport com.oracle.svm.core.windows.headers.SysinfoAPI$OSVERSIONINFOEXA int int int int int int
StackMap stack:
new java.lang.StringBuilder
dup
iload 5
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 8
start local 8 39: iload 4
tableswitch { // 1 - 2
1: 40
2: 52
default: 109
}
40: StackMap locals: java.lang.String
StackMap stack:
iload 5
iconst_4
if_icmpne 50
41: iload 6
lookupswitch { // 3
0: 42
10: 44
90: 46
default: 48
}
42: StackMap locals:
StackMap stack:
ldc "Windows 95"
astore 9
start local 9 43: goto 110
end local 9 44: StackMap locals:
StackMap stack:
ldc "Windows 98"
astore 9
start local 9 45: goto 110
end local 9 46: StackMap locals:
StackMap stack:
ldc "Windows Me"
astore 9
start local 9 47: goto 110
end local 9 48: StackMap locals:
StackMap stack:
ldc "Windows 9X (unknown)"
astore 9
start local 9 49: goto 110
end local 9 50: StackMap locals:
StackMap stack:
ldc "Windows 9X (unknown)"
astore 9
start local 9 51: goto 110
end local 9 52: StackMap locals:
StackMap stack:
iload 5
iconst_4
if_icmpgt 55
53: ldc "Windows NT"
astore 9
start local 9 54: goto 110
end local 9 StackMap locals:
StackMap stack:
55: iload 5
iconst_5
if_icmpne 68
56: iload 6
tableswitch { // 0 - 2
0: 57
1: 59
2: 61
default: 66
}
57: StackMap locals:
StackMap stack:
ldc "Windows 2000"
astore 9
start local 9 58: goto 110
end local 9 59: StackMap locals:
StackMap stack:
ldc "Windows XP"
astore 9
start local 9 60: goto 110
end local 9 61: StackMap locals:
StackMap stack:
iload 3
ifeq 64
iload 2
ifeq 64
62: ldc "Windows XP"
astore 9
start local 9 63: goto 110
end local 9 64: StackMap locals:
StackMap stack:
ldc "Windows 2003"
astore 9
start local 9 65: goto 110
end local 9 66: StackMap locals:
StackMap stack:
ldc "Windows NT (unknown)"
astore 9
start local 9 67: goto 110
end local 9 StackMap locals:
StackMap stack:
68: iload 5
bipush 6
if_icmpne 92
69: iload 3
ifeq 81
70: iload 6
tableswitch { // 0 - 3
0: 71
1: 73
2: 75
3: 77
default: 79
}
71: StackMap locals:
StackMap stack:
ldc "Windows Vista"
astore 9
start local 9 72: goto 110
end local 9 73: StackMap locals:
StackMap stack:
ldc "Windows 7"
astore 9
start local 9 74: goto 110
end local 9 75: StackMap locals:
StackMap stack:
ldc "Windows 8"
astore 9
start local 9 76: goto 110
end local 9 77: StackMap locals:
StackMap stack:
ldc "Windows 8.1"
astore 9
start local 9 78: goto 110
end local 9 79: StackMap locals:
StackMap stack:
ldc "Windows NT (unknown)"
astore 9
start local 9 80: goto 110
end local 9 81: StackMap locals:
StackMap stack:
iload 6
tableswitch { // 0 - 3
0: 82
1: 84
2: 86
3: 88
default: 90
}
82: StackMap locals:
StackMap stack:
ldc "Windows Server 2008"
astore 9
start local 9 83: goto 110
end local 9 84: StackMap locals:
StackMap stack:
ldc "Windows Server 2008 R2"
astore 9
start local 9 85: goto 110
end local 9 86: StackMap locals:
StackMap stack:
ldc "Windows Server 2012"
astore 9
start local 9 87: goto 110
end local 9 88: StackMap locals:
StackMap stack:
ldc "Windows Server 2012 R2"
astore 9
start local 9 89: goto 110
end local 9 90: StackMap locals:
StackMap stack:
ldc "Windows NT (unknown)"
astore 9
start local 9 91: goto 110
end local 9 StackMap locals:
StackMap stack:
92: iload 5
bipush 10
if_icmpne 107
93: iload 3
ifeq 99
94: iload 6
tableswitch { // 0 - 0
0: 95
default: 97
}
95: StackMap locals:
StackMap stack:
ldc "Windows 10"
astore 9
start local 9 96: goto 110
end local 9 97: StackMap locals:
StackMap stack:
ldc "Windows NT (unknown)"
astore 9
start local 9 98: goto 110
end local 9 99: StackMap locals:
StackMap stack:
iload 6
tableswitch { // 0 - 0
0: 100
default: 105
}
100: StackMap locals:
StackMap stack:
iload 7
sipush 17762
if_icmple 103
101: ldc "Windows Server 2019"
astore 9
start local 9 102: goto 110
end local 9 103: StackMap locals:
StackMap stack:
ldc "Windows Server 2016"
astore 9
start local 9 104: goto 110
end local 9 105: StackMap locals:
StackMap stack:
ldc "Windows NT (unknown)"
astore 9
start local 9 106: goto 110
end local 9 107: StackMap locals:
StackMap stack:
ldc "Windows NT (unknown)"
astore 9
start local 9 108: goto 110
end local 9 109: StackMap locals:
StackMap stack:
ldc "Windows (unknown)"
astore 9
start local 9 110: StackMap locals: java.lang.String
StackMap stack:
aload 9
aload 8
invokestatic org.graalvm.collections.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/graalvm/collections/Pair;
areturn
end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 111 0 this Lcom/oracle/svm/core/windows/WindowsSystemPropertiesSupport;
1 111 1 ver Lcom/oracle/svm/core/windows/headers/SysinfoAPI$OSVERSIONINFOEXA;
4 111 2 is64bit Z
7 111 3 isWorkstation Z
8 111 4 platformId I
9 111 5 majorVersion I
10 111 6 minorVersion I
11 111 7 buildNumber I
12 38 8 kernel32Path Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;
13 38 9 kernel32Dll Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;
14 38 10 len I
15 38 11 ret I
19 38 12 versionSize I
22 38 13 versionInfo Lorg/graalvm/nativeimage/c/type/VoidPointer;
28 38 14 rootPath Lcom/oracle/svm/core/windows/headers/LibC$WCharPointer;
29 38 15 fileInfoPointer Lorg/graalvm/nativeimage/c/type/WordPointer;
30 38 16 lengthPointer Lorg/graalvm/nativeimage/c/type/CIntPointer;
34 38 17 fileInfo Lcom/oracle/svm/core/windows/headers/VerRsrc$VS_FIXEDFILEINFO;
39 111 8 osVersion Ljava/lang/String;
43 44 9 osName Ljava/lang/String;
45 46 9 osName Ljava/lang/String;
47 48 9 osName Ljava/lang/String;
49 50 9 osName Ljava/lang/String;
51 52 9 osName Ljava/lang/String;
54 55 9 osName Ljava/lang/String;
58 59 9 osName Ljava/lang/String;
60 61 9 osName Ljava/lang/String;
63 64 9 osName Ljava/lang/String;
65 66 9 osName Ljava/lang/String;
67 68 9 osName Ljava/lang/String;
72 73 9 osName Ljava/lang/String;
74 75 9 osName Ljava/lang/String;
76 77 9 osName Ljava/lang/String;
78 79 9 osName Ljava/lang/String;
80 81 9 osName Ljava/lang/String;
83 84 9 osName Ljava/lang/String;
85 86 9 osName Ljava/lang/String;
87 88 9 osName Ljava/lang/String;
89 90 9 osName Ljava/lang/String;
91 92 9 osName Ljava/lang/String;
96 97 9 osName Ljava/lang/String;
98 99 9 osName Ljava/lang/String;
102 103 9 osName Ljava/lang/String;
104 105 9 osName Ljava/lang/String;
106 107 9 osName Ljava/lang/String;
108 109 9 osName Ljava/lang/String;
110 111 9 osName Ljava/lang/String;
Signature: ()Lorg/graalvm/collections/Pair<Ljava/lang/String;Ljava/lang/String;>;
}
SourceFile: "WindowsSystemPropertiesSupport.java"
InnerClasses:
public abstract WCharPointer = com.oracle.svm.core.windows.headers.LibC$WCharPointer of com.oracle.svm.core.windows.headers.LibC
public abstract OSVERSIONINFOEXA = com.oracle.svm.core.windows.headers.SysinfoAPI$OSVERSIONINFOEXA of com.oracle.svm.core.windows.headers.SysinfoAPI
public abstract VS_FIXEDFILEINFO = com.oracle.svm.core.windows.headers.VerRsrc$VS_FIXEDFILEINFO of com.oracle.svm.core.windows.headers.VerRsrc
public abstract HANDLE = com.oracle.svm.core.windows.headers.WinBase$HANDLE of com.oracle.svm.core.windows.headers.WinBase
public abstract LPHANDLE = com.oracle.svm.core.windows.headers.WinBase$LPHANDLE of com.oracle.svm.core.windows.headers.WinBase
RuntimeVisibleAnnotations:
org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$WINDOWS;})