Home | History | Annotate | Download | only in smali
      1 .class public LB27799205_3;
      2 .super Ljava/lang/Object;
      3 
      4 # A class with an unresolved array type should not fail hard (unless it's a primitive-type access).
      5 # Make sure that merging is pro-active.
      6 
      7 .method public static run()V
      8 .registers 1
      9        return-void
     10 .end method
     11 
     12 # Use some non-object non-array input (non-Object because the merge should be Object).
     13 .method public static test(Ljava/lang/Integer;[Ldo/not/resolve/K;Z)V
     14 .registers 6
     15        # Make v0, v1 and v2 null. We'll use v0 as a merge of the inputs, v1 as null, and v2 as 0.
     16        const v0, 0
     17        const v1, 0
     18        const v2, 0
     19 
     20        # Conditional jump so we have a merge point.
     21        if-eqz v5, :LabelSelectUnresolved
     22 
     23 :LabelSelectResolved
     24        move-object v0, v3
     25        goto :LabelMerged
     26 
     27 :LabelSelectUnresolved
     28        move-object v0, v4
     29        goto :LabelMerged
     30 
     31 :LabelMerged
     32        # At this point, v0 should be Object.
     33 
     34        # Test aput-object: v0[v2] = v1. Should fail for v0 not being an array.
     35        aput-object v1, v0, v2
     36 
     37        return-void
     38 
     39 .end method
     40