final class java.io.FileCleanable extends jdk.internal.ref.PhantomCleanable<java.io.FileDescriptor>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: java.io.FileCleanable
super_class: jdk.internal.ref.PhantomCleanable
{
private static final jdk.internal.access.JavaIOFileDescriptorAccess fdAccess;
descriptor: Ljdk/internal/access/JavaIOFileDescriptorAccess;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final int fd;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long handle;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic jdk.internal.access.SharedSecrets.getJavaIOFileDescriptorAccess:()Ljdk/internal/access/JavaIOFileDescriptorAccess;
1: putstatic java.io.FileCleanable.fdAccess:Ljdk/internal/access/JavaIOFileDescriptorAccess;
2: return
LocalVariableTable:
Start End Slot Name Signature
private static native void cleanupClose0(int, long);
descriptor: (IJ)V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
fd
handle
static void register(java.io.FileDescriptor);
descriptor: (Ljava/io/FileDescriptor;)V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=4, args_size=1
start local 0 0: aload 0
ifnull 4
aload 0
invokevirtual java.io.FileDescriptor.valid:()Z
ifeq 4
1: getstatic java.io.FileCleanable.fdAccess:Ljdk/internal/access/JavaIOFileDescriptorAccess;
aload 0
invokeinterface jdk.internal.access.JavaIOFileDescriptorAccess.get:(Ljava/io/FileDescriptor;)I
istore 1
start local 1 2: getstatic java.io.FileCleanable.fdAccess:Ljdk/internal/access/JavaIOFileDescriptorAccess;
aload 0
invokeinterface jdk.internal.access.JavaIOFileDescriptorAccess.getHandle:(Ljava/io/FileDescriptor;)J
lstore 2
start local 2 3: aload 0
new java.io.FileCleanable
dup
aload 0
invokestatic jdk.internal.ref.CleanerFactory.cleaner:()Ljava/lang/ref/Cleaner;
iload 1
lload 2
invokespecial java.io.FileCleanable.<init>:(Ljava/io/FileDescriptor;Ljava/lang/ref/Cleaner;IJ)V
invokevirtual java.io.FileDescriptor.registerCleanup:(Ljdk/internal/ref/PhantomCleanable;)V
end local 2 end local 1 4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 fdo Ljava/io/FileDescriptor;
2 4 1 fd I
3 4 2 handle J
MethodParameters:
Name Flags
fdo
static void unregister(java.io.FileDescriptor);
descriptor: (Ljava/io/FileDescriptor;)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
ifnull 2
1: aload 0
invokevirtual java.io.FileDescriptor.unregisterCleanup:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 fdo Ljava/io/FileDescriptor;
MethodParameters:
Name Flags
fdo
private void <init>(java.io.FileDescriptor, java.lang.ref.Cleaner, int, long);
descriptor: (Ljava/io/FileDescriptor;Ljava/lang/ref/Cleaner;IJ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
invokespecial jdk.internal.ref.PhantomCleanable.<init>:(Ljava/lang/Object;Ljava/lang/ref/Cleaner;)V
1: aload 0
iload 3
putfield java.io.FileCleanable.fd:I
2: aload 0
lload 4
putfield java.io.FileCleanable.handle:J
3: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/io/FileCleanable;
0 4 1 obj Ljava/io/FileDescriptor;
0 4 2 cleaner Ljava/lang/ref/Cleaner;
0 4 3 fd I
0 4 4 handle J
MethodParameters:
Name Flags
obj
cleaner
fd
handle
protected void performCleanup();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield java.io.FileCleanable.fd:I
aload 0
getfield java.io.FileCleanable.handle:J
invokestatic java.io.FileCleanable.cleanupClose0:(IJ)V
1: goto 4
StackMap locals:
StackMap stack: java.io.IOException
2: astore 1
start local 1 3: new java.io.UncheckedIOException
dup
ldc "close"
aload 1
invokespecial java.io.UncheckedIOException.<init>:(Ljava/lang/String;Ljava/io/IOException;)V
athrow
end local 1 4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/io/FileCleanable;
3 4 1 ioe Ljava/io/IOException;
Exception table:
from to target type
0 1 2 Class java.io.IOException
}
Signature: Ljdk/internal/ref/PhantomCleanable<Ljava/io/FileDescriptor;>;
SourceFile: "FileCleanable.java"