class org.jruby.ext.tempfile.Tempfile$TempfileCallback implements org.jruby.runtime.BlockCallback
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.jruby.ext.tempfile.Tempfile$TempfileCallback
super_class: java.lang.Object
{
final org.jruby.ext.tempfile.Tempfile this$0;
descriptor: Lorg/jruby/ext/tempfile/Tempfile;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(org.jruby.ext.tempfile.Tempfile);
descriptor: (Lorg/jruby/ext/tempfile/Tempfile;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // org.jruby.ext.tempfile.Tempfile$TempfileCallback this
0: .line 115
aload 0 /* this */
aload 1
putfield org.jruby.ext.tempfile.Tempfile$TempfileCallback.this$0:Lorg/jruby/ext/tempfile/Tempfile;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.jruby.ext.tempfile.Tempfile$TempfileCallback this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/tempfile/Tempfile$TempfileCallback;
MethodParameters:
Name Flags
this$0 final
public org.jruby.runtime.builtin.IRubyObject call(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject[], org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=11, args_size=4
start local 0 // org.jruby.ext.tempfile.Tempfile$TempfileCallback this
start local 1 // org.jruby.runtime.ThreadContext context
start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
start local 3 // org.jruby.runtime.Block block
0: .line 118
aload 1 /* context */
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
astore 4 /* runtime */
start local 4 // org.jruby.Ruby runtime
1: .line 119
aload 2 /* args */
iconst_0
aaload
astore 5 /* tmpname */
start local 5 // org.jruby.runtime.builtin.IRubyObject tmpname
2: aload 2 /* args */
arraylength
iconst_2
if_icmple 3
aload 2 /* args */
iconst_2
aaload
goto 4
StackMap locals: org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject
StackMap stack:
3: aload 1 /* context */
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
StackMap locals:
StackMap stack: org.jruby.runtime.builtin.IRubyObject
4: astore 6 /* opts */
start local 6 // org.jruby.runtime.builtin.IRubyObject opts
5: .line 122
getstatic jnr.constants.platform.OpenFlags.O_RDWR:Ljnr/constants/platform/OpenFlags;
invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
getstatic jnr.constants.platform.OpenFlags.O_EXCL:Ljnr/constants/platform/OpenFlags;
invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
ior
istore 7 /* mode */
start local 7 // int mode
6: .line 123
aload 4 /* runtime */
sipush 384
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
astore 8 /* perm */
start local 8 // org.jruby.runtime.builtin.IRubyObject perm
7: .line 126
aload 6 /* opts */
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifne 14
8: .line 127
aload 6 /* opts */
checkcast org.jruby.RubyHash
astore 9 /* options */
start local 9 // org.jruby.RubyHash options
9: .line 128
aload 9 /* options */
aload 1 /* context */
aload 4 /* runtime */
ldc "mode"
invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
invokevirtual org.jruby.RubyHash.delete:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 10 /* optsMode */
start local 10 // org.jruby.runtime.builtin.IRubyObject optsMode
10: .line 129
aload 10 /* optsMode */
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifne 12
11: .line 130
iload 7 /* mode */
aload 10 /* optsMode */
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
invokevirtual org.jruby.RubyInteger.getIntValue:()I
ior
istore 7 /* mode */
12: .line 132
StackMap locals: org.jruby.ext.tempfile.Tempfile$TempfileCallback org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int org.jruby.runtime.builtin.IRubyObject org.jruby.RubyHash org.jruby.runtime.builtin.IRubyObject
StackMap stack:
aload 9 /* options */
aload 1 /* context */
aload 4 /* runtime */
ldc "perm"
invokevirtual org.jruby.Ruby.newSymbol:(Ljava/lang/String;)Lorg/jruby/RubySymbol;
aload 8 /* perm */
invokevirtual org.jruby.RubyHash.op_aset:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
end local 10 // org.jruby.runtime.builtin.IRubyObject optsMode
end local 9 // org.jruby.RubyHash options
13: .line 133
goto 15
14: .line 134
StackMap locals:
StackMap stack:
aload 8 /* perm */
astore 6 /* opts */
15: .line 140
StackMap locals:
StackMap stack:
new java.io.File
dup
aload 5 /* tmpname */
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
invokevirtual org.jruby.RubyString.toString:()Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 9 /* tmp */
start local 9 // java.io.File tmp
16: .line 141
aload 9 /* tmp */
invokevirtual java.io.File.createNewFile:()Z
ifeq 20
17: .line 142
aload 4 /* runtime */
invokevirtual org.jruby.Ruby.getPosix:()Ljnr/posix/POSIX;
aload 9 /* tmp */
invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
sipush 384
invokeinterface jnr.posix.POSIX.chmod:(Ljava/lang/String;I)I
pop
18: .line 143
aload 0 /* this */
getfield org.jruby.ext.tempfile.Tempfile$TempfileCallback.this$0:Lorg/jruby/ext/tempfile/Tempfile;
aload 9 /* tmp */
putfield org.jruby.ext.tempfile.Tempfile.tmpFile:Ljava/io/File;
19: .line 144
goto 23
20: .line 145
StackMap locals: java.io.File
StackMap stack:
aload 1 /* context */
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0 /* this */
getfield org.jruby.ext.tempfile.Tempfile$TempfileCallback.this$0:Lorg/jruby/ext/tempfile/Tempfile;
invokevirtual org.jruby.ext.tempfile.Tempfile.getPath:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newErrnoEEXISTError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 9 // java.io.File tmp
21: .line 147
StackMap locals: org.jruby.ext.tempfile.Tempfile$TempfileCallback org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject[] org.jruby.runtime.Block org.jruby.Ruby org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int org.jruby.runtime.builtin.IRubyObject
StackMap stack: java.io.IOException
astore 9 /* e */
start local 9 // java.io.IOException e
22: .line 148
aload 1 /* context */
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 9 /* e */
invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 9 // java.io.IOException e
23: .line 154
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.jruby.ext.tempfile.Tempfile$TempfileCallback.this$0:Lorg/jruby/ext/tempfile/Tempfile;
aload 1 /* context */
iconst_3
anewarray org.jruby.runtime.builtin.IRubyObject
dup
iconst_0
aload 5 /* tmpname */
aastore
dup
iconst_1
aload 4 /* runtime */
iload 7 /* mode */
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
aastore
dup
iconst_2
aload 6 /* opts */
aastore
getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
invokestatic org.jruby.ext.tempfile.Tempfile.access$0:(Lorg/jruby/ext/tempfile/Tempfile;Lorg/jruby/runtime/ThreadContext;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
pop
24: .line 155
aload 0 /* this */
getfield org.jruby.ext.tempfile.Tempfile$TempfileCallback.this$0:Lorg/jruby/ext/tempfile/Tempfile;
aload 5 /* tmpname */
putfield org.jruby.ext.tempfile.Tempfile.tmpname:Lorg/jruby/runtime/builtin/IRubyObject;
25: .line 157
aload 0 /* this */
getfield org.jruby.ext.tempfile.Tempfile$TempfileCallback.this$0:Lorg/jruby/ext/tempfile/Tempfile;
aload 4 /* runtime */
iload 7 /* mode */
getstatic jnr.constants.platform.OpenFlags.O_CREAT:Ljnr/constants/platform/OpenFlags;
invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
getstatic jnr.constants.platform.OpenFlags.O_EXCL:Ljnr/constants/platform/OpenFlags;
invokevirtual jnr.constants.platform.OpenFlags.intValue:()I
ior
iconst_m1
ixor
iand
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
putfield org.jruby.ext.tempfile.Tempfile.mode:Lorg/jruby/runtime/builtin/IRubyObject;
26: .line 158
aload 0 /* this */
getfield org.jruby.ext.tempfile.Tempfile$TempfileCallback.this$0:Lorg/jruby/ext/tempfile/Tempfile;
aload 6 /* opts */
putfield org.jruby.ext.tempfile.Tempfile.opts:Lorg/jruby/runtime/builtin/IRubyObject;
27: .line 160
aload 6 /* opts */
areturn
end local 8 // org.jruby.runtime.builtin.IRubyObject perm
end local 7 // int mode
end local 6 // org.jruby.runtime.builtin.IRubyObject opts
end local 5 // org.jruby.runtime.builtin.IRubyObject tmpname
end local 4 // org.jruby.Ruby runtime
end local 3 // org.jruby.runtime.Block block
end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
end local 1 // org.jruby.runtime.ThreadContext context
end local 0 // org.jruby.ext.tempfile.Tempfile$TempfileCallback this
LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lorg/jruby/ext/tempfile/Tempfile$TempfileCallback;
0 28 1 context Lorg/jruby/runtime/ThreadContext;
0 28 2 args [Lorg/jruby/runtime/builtin/IRubyObject;
0 28 3 block Lorg/jruby/runtime/Block;
1 28 4 runtime Lorg/jruby/Ruby;
2 28 5 tmpname Lorg/jruby/runtime/builtin/IRubyObject;
5 28 6 opts Lorg/jruby/runtime/builtin/IRubyObject;
6 28 7 mode I
7 28 8 perm Lorg/jruby/runtime/builtin/IRubyObject;
9 13 9 options Lorg/jruby/RubyHash;
10 13 10 optsMode Lorg/jruby/runtime/builtin/IRubyObject;
16 21 9 tmp Ljava/io/File;
22 23 9 e Ljava/io/IOException;
Exception table:
from to target type
15 21 21 Class java.io.IOException
MethodParameters:
Name Flags
context
args
block
}
SourceFile: "Tempfile.java"
NestHost: org.jruby.ext.tempfile.Tempfile
InnerClasses:
private TempfileCallback = org.jruby.ext.tempfile.Tempfile$TempfileCallback of org.jruby.ext.tempfile.Tempfile