class sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator implements java.util.Iterator<java.nio.file.Path>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator
super_class: java.lang.Object
{
private final java.nio.file.DirectoryStream<java.nio.file.Path> stream;
descriptor: Ljava/nio/file/DirectoryStream;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
private boolean atEof;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.nio.file.Path nextEntry;
descriptor: Ljava/nio/file/Path;
flags: (0x0002) ACC_PRIVATE
final sun.nio.fs.UnixDirectoryStream this$0;
descriptor: Lsun/nio/fs/UnixDirectoryStream;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lsun/nio/fs/UnixDirectoryStream;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.nio.file.DirectoryStream<java.nio.file.Path>);
descriptor: (Lsun/nio/fs/UnixDirectoryStream;Ljava/nio/file/DirectoryStream;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.this$0:Lsun/nio/fs/UnixDirectoryStream;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_0
putfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.atEof:Z
2: aload 0
aload 2
putfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.stream:Ljava/nio/file/DirectoryStream;
3: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;
0 4 2 stream Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;
Signature: (Ljava/nio/file/DirectoryStream<Ljava/nio/file/Path;>;)V
MethodParameters:
Name Flags
this$0 final
stream
private boolean isSelfOrParent(byte[]);
descriptor: ([B)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
baload
bipush 46
if_icmpne 4
1: aload 1
arraylength
iconst_1
if_icmpeq 3
2: aload 1
arraylength
iconst_2
if_icmpne 4
aload 1
iconst_1
baload
bipush 46
if_icmpne 4
3: StackMap locals:
StackMap stack:
iconst_1
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;
0 5 1 nameAsBytes [B
MethodParameters:
Name Flags
nameAsBytes
private java.nio.file.Path readNextEntry();
descriptor: ()Ljava/nio/file/Path;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=1
start local 0 0: getstatic sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aconst_null
astore 1
start local 1 2: aload 0
getfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.this$0:Lsun/nio/fs/UnixDirectoryStream;
invokevirtual sun.nio.fs.UnixDirectoryStream.readLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
3: aload 0
getfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.this$0:Lsun/nio/fs/UnixDirectoryStream;
invokevirtual sun.nio.fs.UnixDirectoryStream.isOpen:()Z
ifeq 12
4: aload 0
getfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.this$0:Lsun/nio/fs/UnixDirectoryStream;
getfield sun.nio.fs.UnixDirectoryStream.dp:J
invokestatic sun.nio.fs.UnixNativeDispatcher.readdir:(J)[B
astore 1
5: goto 12
StackMap locals: sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator byte[]
StackMap stack: sun.nio.fs.UnixException
6: astore 2
start local 2 7: aload 2
aload 0
getfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.this$0:Lsun/nio/fs/UnixDirectoryStream;
getfield sun.nio.fs.UnixDirectoryStream.dir:Lsun/nio/fs/UnixPath;
invokevirtual sun.nio.fs.UnixException.asIOException:(Lsun/nio/fs/UnixPath;)Ljava/io/IOException;
astore 3
start local 3 8: new java.nio.file.DirectoryIteratorException
dup
aload 3
invokespecial java.nio.file.DirectoryIteratorException.<init>:(Ljava/io/IOException;)V
athrow
end local 3 end local 2 9: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
10: aload 0
getfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.this$0:Lsun/nio/fs/UnixDirectoryStream;
invokevirtual sun.nio.fs.UnixDirectoryStream.readLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
11: aload 4
athrow
12: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.this$0:Lsun/nio/fs/UnixDirectoryStream;
invokevirtual sun.nio.fs.UnixDirectoryStream.readLock:()Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
13: aload 1
ifnonnull 16
14: aload 0
iconst_1
putfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.atEof:Z
15: aconst_null
areturn
16: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.isSelfOrParent:([B)Z
ifne 1
17: aload 0
getfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.this$0:Lsun/nio/fs/UnixDirectoryStream;
getfield sun.nio.fs.UnixDirectoryStream.dir:Lsun/nio/fs/UnixPath;
aload 1
invokevirtual sun.nio.fs.UnixPath.resolve:([B)Lsun/nio/fs/UnixPath;
astore 2
start local 2 18: aload 0
getfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.this$0:Lsun/nio/fs/UnixDirectoryStream;
getfield sun.nio.fs.UnixDirectoryStream.filter:Ljava/nio/file/DirectoryStream$Filter;
ifnull 19
aload 0
getfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.this$0:Lsun/nio/fs/UnixDirectoryStream;
getfield sun.nio.fs.UnixDirectoryStream.filter:Ljava/nio/file/DirectoryStream$Filter;
aload 2
invokeinterface java.nio.file.DirectoryStream$Filter.accept:(Ljava/lang/Object;)Z
ifeq 1
19: StackMap locals: java.nio.file.Path
StackMap stack:
aload 2
20: areturn
21: StackMap locals:
StackMap stack: java.io.IOException
astore 3
start local 3 22: new java.nio.file.DirectoryIteratorException
dup
aload 3
invokespecial java.nio.file.DirectoryIteratorException.<init>:(Ljava/io/IOException;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;
2 23 1 nameAsBytes [B
7 9 2 x Lsun/nio/fs/UnixException;
8 9 3 ioe Ljava/io/IOException;
18 23 2 entry Ljava/nio/file/Path;
22 23 3 ioe Ljava/io/IOException;
Exception table:
from to target type
3 5 6 Class sun.nio.fs.UnixException
3 9 9 any
18 20 21 Class java.io.IOException
public synchronized boolean hasNext();
descriptor: ()Z
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.nextEntry:Ljava/nio/file/Path;
ifnonnull 2
aload 0
getfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.atEof:Z
ifne 2
1: aload 0
aload 0
invokevirtual sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.readNextEntry:()Ljava/nio/file/Path;
putfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.nextEntry:Ljava/nio/file/Path;
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.nextEntry:Ljava/nio/file/Path;
ifnull 3
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;
public synchronized java.nio.file.Path next();
descriptor: ()Ljava/nio/file/Path;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.nextEntry:Ljava/nio/file/Path;
ifnonnull 3
aload 0
getfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.atEof:Z
ifne 3
1: aload 0
invokevirtual sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.readNextEntry:()Ljava/nio/file/Path;
astore 1
start local 1 2: goto 5
end local 1 3: StackMap locals:
StackMap stack:
aload 0
getfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.nextEntry:Ljava/nio/file/Path;
astore 1
start local 1 4: aload 0
aconst_null
putfield sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.nextEntry:Ljava/nio/file/Path;
5: StackMap locals: java.nio.file.Path
StackMap stack:
aload 1
ifnonnull 7
6: new java.util.NoSuchElementException
dup
invokespecial java.util.NoSuchElementException.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;
2 3 1 result Ljava/nio/file/Path;
4 8 1 result Ljava/nio/file/Path;
public void remove();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: new java.lang.UnsupportedOperationException
dup
invokespecial java.lang.UnsupportedOperationException.<init>:()V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/fs/UnixDirectoryStream$UnixDirectoryIterator;
public java.lang.Object next();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator.next:()Ljava/nio/file/Path;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/util/Iterator<Ljava/nio/file/Path;>;
SourceFile: "UnixDirectoryStream.java"
NestHost: sun.nio.fs.UnixDirectoryStream
InnerClasses:
public abstract Filter = java.nio.file.DirectoryStream$Filter of java.nio.file.DirectoryStream
private UnixDirectoryIterator = sun.nio.fs.UnixDirectoryStream$UnixDirectoryIterator of sun.nio.fs.UnixDirectoryStream