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