class javafx.scene.shape.TriangleMesh$Listener<T extends javafx.collections.ObservableArray<T>> implements javafx.collections.ArrayChangeListener<T>, com.sun.javafx.collections.FloatArraySyncer, com.sun.javafx.collections.IntegerArraySyncer
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: javafx.scene.shape.TriangleMesh$Listener
  super_class: java.lang.Object
{
  protected final T array;
    descriptor: Ljavafx/collections/ObservableArray;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: TT;

  protected boolean dirty;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected boolean dirtyInFull;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected int dirtyRangeFrom;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected int dirtyRangeLength;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  final javafx.scene.shape.TriangleMesh this$0;
    descriptor: Ljavafx/scene/shape/TriangleMesh;
    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: .line 848
            ldc Ljavafx/scene/shape/TriangleMesh;
            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 javafx.scene.shape.TriangleMesh$Listener.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: (Ljavafx/scene/shape/TriangleMesh;Ljavafx/collections/ObservableArray;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // javafx.scene.shape.TriangleMesh$Listener this
        start local 2 // javafx.collections.ObservableArray array
         0: .line 860
            aload 0 /* this */
            aload 1
            putfield javafx.scene.shape.TriangleMesh$Listener.this$0:Ljavafx/scene/shape/TriangleMesh;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 851
            aload 0 /* this */
            iconst_1
            putfield javafx.scene.shape.TriangleMesh$Listener.dirty:Z
         2: .line 856
            aload 0 /* this */
            iconst_1
            putfield javafx.scene.shape.TriangleMesh$Listener.dirtyInFull:Z
         3: .line 861
            aload 0 /* this */
            aload 2 /* array */
            putfield javafx.scene.shape.TriangleMesh$Listener.array:Ljavafx/collections/ObservableArray;
         4: .line 862
            aload 2 /* array */
            aload 0 /* this */
            invokeinterface javafx.collections.ObservableArray.addListener:(Ljavafx/collections/ArrayChangeListener;)V
         5: .line 863
            return
        end local 2 // javafx.collections.ObservableArray array
        end local 0 // javafx.scene.shape.TriangleMesh$Listener this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Ljavafx/scene/shape/TriangleMesh$Listener<TT;>;
            0    6     2  array  TT;
    Signature: (TT;)V
    MethodParameters:
        Name  Flags
      this$0  final
      array   

  protected final void addDirtyRange(int, int);
    descriptor: (II)V
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // javafx.scene.shape.TriangleMesh$Listener this
        start local 1 // int from
        start local 2 // int length
         0: .line 871
            iload 2 /* length */
            ifle 10
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.dirtyInFull:Z
            ifne 10
         1: .line 872
            aload 0 /* this */
            invokevirtual javafx.scene.shape.TriangleMesh$Listener.markDirty:()V
         2: .line 873
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeLength:I
            ifne 6
         3: .line 874
            aload 0 /* this */
            iload 1 /* from */
            putfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeFrom:I
         4: .line 875
            aload 0 /* this */
            iload 2 /* length */
            putfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeLength:I
         5: .line 876
            goto 10
         6: .line 877
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeFrom:I
            iload 1 /* from */
            invokestatic java.lang.Math.min:(II)I
            istore 3 /* fromIndex */
        start local 3 // int fromIndex
         7: .line 878
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeFrom:I
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeLength:I
            iadd
            iload 1 /* from */
            iload 2 /* length */
            iadd
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* toIndex */
        start local 4 // int toIndex
         8: .line 879
            aload 0 /* this */
            iload 3 /* fromIndex */
            putfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeFrom:I
         9: .line 880
            aload 0 /* this */
            iload 4 /* toIndex */
            iload 3 /* fromIndex */
            isub
            putfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeLength:I
        end local 4 // int toIndex
        end local 3 // int fromIndex
        10: .line 883
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int length
        end local 1 // int from
        end local 0 // javafx.scene.shape.TriangleMesh$Listener this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Ljavafx/scene/shape/TriangleMesh$Listener<TT;>;
            0   11     1       from  I
            0   11     2     length  I
            7   10     3  fromIndex  I
            8   10     4    toIndex  I
    MethodParameters:
        Name  Flags
      from    
      length  

  protected void markDirty();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javafx.scene.shape.TriangleMesh$Listener this
         0: .line 886
            aload 0 /* this */
            iconst_1
            putfield javafx.scene.shape.TriangleMesh$Listener.dirty:Z
         1: .line 887
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.this$0:Ljavafx/scene/shape/TriangleMesh;
            iconst_1
            invokevirtual javafx.scene.shape.TriangleMesh.setDirty:(Z)V
         2: .line 888
            return
        end local 0 // javafx.scene.shape.TriangleMesh$Listener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavafx/scene/shape/TriangleMesh$Listener<TT;>;

  public void onChanged(T, boolean, int, );
    descriptor: (Ljavafx/collections/ObservableArray;ZII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // javafx.scene.shape.TriangleMesh$Listener this
        start local 1 // javafx.collections.ObservableArray observableArray
        start local 2 // boolean sizeChanged
        start local 3 // int from
        start local 4 // int to
         0: .line 892
            iload 2 /* sizeChanged */
            ifeq 3
         1: .line 893
            aload 0 /* this */
            iconst_1
            invokevirtual javafx.scene.shape.TriangleMesh$Listener.setDirty:(Z)V
         2: .line 894
            goto 4
         3: .line 895
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 3 /* from */
            iload 4 /* to */
            iload 3 /* from */
            isub
            invokevirtual javafx.scene.shape.TriangleMesh$Listener.addDirtyRange:(II)V
         4: .line 897
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.this$0:Ljavafx/scene/shape/TriangleMesh;
            iconst_1
            putfield javafx.scene.shape.TriangleMesh.isValidDirty:Z
         5: .line 898
            return
        end local 4 // int to
        end local 3 // int from
        end local 2 // boolean sizeChanged
        end local 1 // javafx.collections.ObservableArray observableArray
        end local 0 // javafx.scene.shape.TriangleMesh$Listener this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Ljavafx/scene/shape/TriangleMesh$Listener<TT;>;
            0    6     1  observableArray  TT;
            0    6     2      sizeChanged  Z
            0    6     3             from  I
            0    6     4               to  I
    Signature: (TT;ZII)V
    MethodParameters:
                 Name  Flags
      observableArray  
      sizeChanged      
      from             
      to               

  public final void setDirty(boolean);
    descriptor: (Z)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // javafx.scene.shape.TriangleMesh$Listener this
        start local 1 // boolean dirty
         0: .line 905
            aload 0 /* this */
            iload 1 /* dirty */
            putfield javafx.scene.shape.TriangleMesh$Listener.dirtyInFull:Z
         1: .line 906
            iload 1 /* dirty */
            ifeq 6
         2: .line 907
            aload 0 /* this */
            invokevirtual javafx.scene.shape.TriangleMesh$Listener.markDirty:()V
         3: .line 908
            aload 0 /* this */
            iconst_0
            putfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeFrom:I
         4: .line 909
            aload 0 /* this */
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.array:Ljavafx/collections/ObservableArray;
            invokeinterface javafx.collections.ObservableArray.size:()I
            putfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeLength:I
         5: .line 910
            goto 8
         6: .line 911
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield javafx.scene.shape.TriangleMesh$Listener.dirty:Z
         7: .line 912
            aload 0 /* this */
            aload 0 /* this */
            iconst_0
            dup_x1
            putfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeLength:I
            putfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeFrom:I
         8: .line 914
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean dirty
        end local 0 // javafx.scene.shape.TriangleMesh$Listener this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Ljavafx/scene/shape/TriangleMesh$Listener<TT;>;
            0    9     1  dirty  Z
    MethodParameters:
       Name  Flags
      dirty  

  public float[] syncTo(float[], int[]);
    descriptor: ([F[I)[F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // javafx.scene.shape.TriangleMesh$Listener this
        start local 1 // float[] array
        start local 2 // int[] fromAndLengthIndices
         0: .line 918
            getstatic javafx.scene.shape.TriangleMesh$Listener.$assertionsDisabled:Z
            ifne 2
            aload 2 /* fromAndLengthIndices */
            ifnull 1
            aload 2 /* fromAndLengthIndices */
            arraylength
            iconst_2
            if_icmpeq 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 919
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.array:Ljavafx/collections/ObservableArray;
            checkcast javafx.collections.ObservableFloatArray
            astore 3 /* floatArray */
        start local 3 // javafx.collections.ObservableFloatArray floatArray
         3: .line 920
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.dirtyInFull:Z
            ifne 4
            aload 1 /* array */
            ifnull 4
            aload 1 /* array */
            arraylength
            aload 3 /* floatArray */
            invokeinterface javafx.collections.ObservableFloatArray.size:()I
            if_icmpeq 7
         4: .line 922
      StackMap locals: javafx.collections.ObservableFloatArray
      StackMap stack:
            aload 2 /* fromAndLengthIndices */
            iconst_0
            iconst_0
            iastore
         5: .line 923
            aload 2 /* fromAndLengthIndices */
            iconst_1
            aload 3 /* floatArray */
            invokeinterface javafx.collections.ObservableFloatArray.size:()I
            iastore
         6: .line 924
            aload 3 /* floatArray */
            aconst_null
            invokeinterface javafx.collections.ObservableFloatArray.toArray:([F)[F
            areturn
         7: .line 926
      StackMap locals:
      StackMap stack:
            aload 2 /* fromAndLengthIndices */
            iconst_0
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeFrom:I
            iastore
         8: .line 927
            aload 2 /* fromAndLengthIndices */
            iconst_1
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeLength:I
            iastore
         9: .line 928
            aload 3 /* floatArray */
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeFrom:I
            aload 1 /* array */
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeFrom:I
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeLength:I
            invokeinterface javafx.collections.ObservableFloatArray.copyTo:(I[FII)V
        10: .line 929
            aload 1 /* array */
            areturn
        end local 3 // javafx.collections.ObservableFloatArray floatArray
        end local 2 // int[] fromAndLengthIndices
        end local 1 // float[] array
        end local 0 // javafx.scene.shape.TriangleMesh$Listener this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   11     0                  this  Ljavafx/scene/shape/TriangleMesh$Listener<TT;>;
            0   11     1                 array  [F
            0   11     2  fromAndLengthIndices  [I
            3   11     3            floatArray  Ljavafx/collections/ObservableFloatArray;
    MethodParameters:
                      Name  Flags
      array                 
      fromAndLengthIndices  

  public int[] syncTo(int[], int[]);
    descriptor: ([I[I)[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // javafx.scene.shape.TriangleMesh$Listener this
        start local 1 // int[] array
        start local 2 // int[] fromAndLengthIndices
         0: .line 934
            getstatic javafx.scene.shape.TriangleMesh$Listener.$assertionsDisabled:Z
            ifne 2
            aload 2 /* fromAndLengthIndices */
            ifnull 1
            aload 2 /* fromAndLengthIndices */
            arraylength
            iconst_2
            if_icmpeq 2
      StackMap locals:
      StackMap stack:
         1: new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 935
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.array:Ljavafx/collections/ObservableArray;
            checkcast javafx.collections.ObservableIntegerArray
            astore 3 /* intArray */
        start local 3 // javafx.collections.ObservableIntegerArray intArray
         3: .line 936
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.dirtyInFull:Z
            ifne 4
            aload 1 /* array */
            ifnull 4
            aload 1 /* array */
            arraylength
            aload 3 /* intArray */
            invokeinterface javafx.collections.ObservableIntegerArray.size:()I
            if_icmpeq 7
         4: .line 937
      StackMap locals: javafx.collections.ObservableIntegerArray
      StackMap stack:
            aload 2 /* fromAndLengthIndices */
            iconst_0
            iconst_0
            iastore
         5: .line 938
            aload 2 /* fromAndLengthIndices */
            iconst_1
            aload 3 /* intArray */
            invokeinterface javafx.collections.ObservableIntegerArray.size:()I
            iastore
         6: .line 940
            aload 3 /* intArray */
            aconst_null
            invokeinterface javafx.collections.ObservableIntegerArray.toArray:([I)[I
            areturn
         7: .line 942
      StackMap locals:
      StackMap stack:
            aload 2 /* fromAndLengthIndices */
            iconst_0
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeFrom:I
            iastore
         8: .line 943
            aload 2 /* fromAndLengthIndices */
            iconst_1
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeLength:I
            iastore
         9: .line 944
            aload 3 /* intArray */
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeFrom:I
            aload 1 /* array */
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeFrom:I
            aload 0 /* this */
            getfield javafx.scene.shape.TriangleMesh$Listener.dirtyRangeLength:I
            invokeinterface javafx.collections.ObservableIntegerArray.copyTo:(I[III)V
        10: .line 945
            aload 1 /* array */
            areturn
        end local 3 // javafx.collections.ObservableIntegerArray intArray
        end local 2 // int[] fromAndLengthIndices
        end local 1 // int[] array
        end local 0 // javafx.scene.shape.TriangleMesh$Listener this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   11     0                  this  Ljavafx/scene/shape/TriangleMesh$Listener<TT;>;
            0   11     1                 array  [I
            0   11     2  fromAndLengthIndices  [I
            3   11     3              intArray  Ljavafx/collections/ObservableIntegerArray;
    MethodParameters:
                      Name  Flags
      array                 
      fromAndLengthIndices  
}
Signature: <T::Ljavafx/collections/ObservableArray<TT;>;>Ljava/lang/Object;Ljavafx/collections/ArrayChangeListener<TT;>;Lcom/sun/javafx/collections/FloatArraySyncer;Lcom/sun/javafx/collections/IntegerArraySyncer;
SourceFile: "TriangleMesh.java"
NestHost: javafx.scene.shape.TriangleMesh
InnerClasses:
  private Listener = javafx.scene.shape.TriangleMesh$Listener of javafx.scene.shape.TriangleMesh