.class public Landroidx/constraintlayout/solver/ArrayLinkedVariables; .super Ljava/lang/Object; .source "ArrayLinkedVariables.java" # static fields .field private static final DEBUG:Z = false .field private static final FULL_NEW_CHECK:Z = false .field private static final NONE:I = -0x1 # instance fields .field private ROW_SIZE:I .field private candidate:Landroidx/constraintlayout/solver/SolverVariable; .field currentSize:I .field private mArrayIndices:[I .field private mArrayNextIndices:[I .field private mArrayValues:[F .field private final mCache:Landroidx/constraintlayout/solver/Cache; .field private mDidFillOnce:Z .field private mHead:I .field private mLast:I .field private final mRow:Landroidx/constraintlayout/solver/ArrayRow; # direct methods .method constructor (Landroidx/constraintlayout/solver/ArrayRow;Landroidx/constraintlayout/solver/Cache;)V .registers 6 .line 100 invoke-direct {p0}, Ljava/lang/Object;->()V const/4 v0, 0x0 .line 43 iput v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I const/16 v1, 0x8 .line 48 iput v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->ROW_SIZE:I const/4 v2, 0x0 .line 50 iput-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->candidate:Landroidx/constraintlayout/solver/SolverVariable; .line 53 new-array v2, v1, [I iput-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I .line 56 new-array v2, v1, [I iput-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I .line 59 new-array v1, v1, [F iput-object v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F const/4 v1, -0x1 .line 62 iput v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I .line 78 iput v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I .line 81 iput-boolean v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mDidFillOnce:Z .line 101 iput-object p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mRow:Landroidx/constraintlayout/solver/ArrayRow; .line 102 iput-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mCache:Landroidx/constraintlayout/solver/Cache; return-void .end method .method private isNew(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/LinearSystem;)Z .registers 3 .line 491 iget p1, p1, Landroidx/constraintlayout/solver/SolverVariable;->usageInRowCount:I const/4 p2, 0x1 if-gt p1, p2, :cond_6 goto :goto_7 :cond_6 const/4 p2, 0x0 :goto_7 return p2 .end method # virtual methods .method final add(Landroidx/constraintlayout/solver/SolverVariable;FZ)V .registers 13 const/4 v0, 0x0 cmpl-float v1, p2, v0 if-nez v1, :cond_6 return-void .line 229 :cond_6 iget v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I const/4 v2, 0x0 const/4 v3, -0x1 const/4 v4, 0x1 if-ne v1, v3, :cond_43 .line 230 iput v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I .line 231 iget-object p3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aput p2, p3, v2 .line 232 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I iget p3, p1, Landroidx/constraintlayout/solver/SolverVariable;->id:I aput p3, p2, v2 .line 233 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I iget p3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I aput v3, p2, p3 .line 234 iget p2, p1, Landroidx/constraintlayout/solver/SolverVariable;->usageInRowCount:I add-int/2addr p2, v4 iput p2, p1, Landroidx/constraintlayout/solver/SolverVariable;->usageInRowCount:I .line 235 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mRow:Landroidx/constraintlayout/solver/ArrayRow; invoke-virtual {p1, p2}, Landroidx/constraintlayout/solver/SolverVariable;->addToRow(Landroidx/constraintlayout/solver/ArrayRow;)V .line 236 iget p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I add-int/2addr p1, v4 iput p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I .line 237 iget-boolean p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mDidFillOnce:Z if-nez p1, :cond_42 .line 239 iget p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I add-int/2addr p1, v4 iput p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I .line 240 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I array-length p3, p2 if-lt p1, p3, :cond_42 .line 241 iput-boolean v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mDidFillOnce:Z .line 242 array-length p1, p2 sub-int/2addr p1, v4 iput p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I :cond_42 return-void :cond_43 move v5, v2 move v6, v3 :goto_45 if-eq v1, v3, :cond_97 .line 250 iget v7, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v5, v7, :cond_97 .line 251 iget-object v7, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v7, v7, v1 .line 252 iget v8, p1, Landroidx/constraintlayout/solver/SolverVariable;->id:I if-ne v7, v8, :cond_87 .line 253 iget-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aget v3, v2, v1 add-float/2addr v3, p2 aput v3, v2, v1 cmpl-float p2, v3, v0 if-nez p2, :cond_86 .line 256 iget p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I if-ne v1, p2, :cond_69 .line 257 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget p2, p2, v1 iput p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I goto :goto_6f .line 259 :cond_69 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v0, p2, v1 aput v0, p2, v6 :goto_6f if-eqz p3, :cond_76 .line 262 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mRow:Landroidx/constraintlayout/solver/ArrayRow; invoke-virtual {p1, p2}, Landroidx/constraintlayout/solver/SolverVariable;->removeFromRow(Landroidx/constraintlayout/solver/ArrayRow;)V .line 264 :cond_76 iget-boolean p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mDidFillOnce:Z if-eqz p2, :cond_7c .line 266 iput v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I .line 268 :cond_7c iget p2, p1, Landroidx/constraintlayout/solver/SolverVariable;->usageInRowCount:I sub-int/2addr p2, v4 iput p2, p1, Landroidx/constraintlayout/solver/SolverVariable;->usageInRowCount:I .line 269 iget p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I sub-int/2addr p1, v4 iput p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I :cond_86 return-void .line 273 :cond_87 iget-object v7, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v7, v7, v1 iget v8, p1, Landroidx/constraintlayout/solver/SolverVariable;->id:I if-ge v7, v8, :cond_90 move v6, v1 .line 276 :cond_90 iget-object v7, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v1, v7, v1 add-int/lit8 v5, v5, 0x1 goto :goto_45 .line 282 :cond_97 iget p3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I add-int/lit8 v0, p3, 0x1 .line 283 iget-boolean v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mDidFillOnce:Z if-eqz v1, :cond_a8 .line 286 iget-object v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v1, v0, p3 if-ne v1, v3, :cond_a6 goto :goto_a9 .line 289 :cond_a6 array-length p3, v0 goto :goto_a9 :cond_a8 move p3, v0 .line 292 :goto_a9 iget-object v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I array-length v1, v0 if-lt p3, v1, :cond_c2 .line 293 iget v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I array-length v0, v0 if-ge v1, v0, :cond_c2 move v0, v2 .line 295 :goto_b4 iget-object v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I array-length v5, v1 if-ge v0, v5, :cond_c2 .line 296 aget v1, v1, v0 if-ne v1, v3, :cond_bf move p3, v0 goto :goto_c2 :cond_bf add-int/lit8 v0, v0, 0x1 goto :goto_b4 .line 304 :cond_c2 :goto_c2 iget-object v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I array-length v1, v0 if-lt p3, v1, :cond_f0 .line 305 array-length p3, v0 .line 306 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->ROW_SIZE:I mul-int/lit8 v0, v0, 0x2 iput v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->ROW_SIZE:I .line 307 iput-boolean v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mDidFillOnce:Z add-int/lit8 v1, p3, -0x1 .line 308 iput v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I .line 309 iget-object v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F invoke-static {v1, v0}, Ljava/util/Arrays;->copyOf([FI)[F move-result-object v0 iput-object v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F .line 310 iget-object v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I iget v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->ROW_SIZE:I invoke-static {v0, v1}, Ljava/util/Arrays;->copyOf([II)[I move-result-object v0 iput-object v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I .line 311 iget-object v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I iget v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->ROW_SIZE:I invoke-static {v0, v1}, Ljava/util/Arrays;->copyOf([II)[I move-result-object v0 iput-object v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I .line 315 :cond_f0 iget-object v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I iget v1, p1, Landroidx/constraintlayout/solver/SolverVariable;->id:I aput v1, v0, p3 .line 316 iget-object v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aput p2, v0, p3 if-eq v6, v3, :cond_105 .line 318 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v0, p2, v6 aput v0, p2, p3 .line 319 aput p3, p2, v6 goto :goto_10d .line 321 :cond_105 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I aput v0, p2, p3 .line 322 iput p3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I .line 324 :goto_10d iget p2, p1, Landroidx/constraintlayout/solver/SolverVariable;->usageInRowCount:I add-int/2addr p2, v4 iput p2, p1, Landroidx/constraintlayout/solver/SolverVariable;->usageInRowCount:I .line 325 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mRow:Landroidx/constraintlayout/solver/ArrayRow; invoke-virtual {p1, p2}, Landroidx/constraintlayout/solver/SolverVariable;->addToRow(Landroidx/constraintlayout/solver/ArrayRow;)V .line 326 iget p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I add-int/2addr p1, v4 iput p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I .line 327 iget-boolean p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mDidFillOnce:Z if-nez p1, :cond_125 .line 329 iget p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I add-int/2addr p1, v4 iput p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I .line 331 :cond_125 iget p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I array-length p3, p2 if-lt p1, p3, :cond_132 .line 332 iput-boolean v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mDidFillOnce:Z .line 333 array-length p1, p2 sub-int/2addr p1, v4 iput p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I :cond_132 return-void .end method .method chooseSubject(Landroidx/constraintlayout/solver/LinearSystem;)Landroidx/constraintlayout/solver/SolverVariable; .registers 16 .line 512 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I const/4 v1, 0x0 const/4 v2, 0x0 const/4 v3, 0x0 move v7, v2 move v8, v7 move v4, v3 move v5, v4 move v6, v5 move-object v3, v1 :goto_b const/4 v9, -0x1 if-eq v0, v9, :cond_9c .line 515 iget v9, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v4, v9, :cond_9c .line 516 iget-object v9, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aget v9, v9, v0 .line 518 iget-object v10, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mCache:Landroidx/constraintlayout/solver/Cache; iget-object v10, v10, Landroidx/constraintlayout/solver/Cache;->mIndexedVariables:[Landroidx/constraintlayout/solver/SolverVariable; iget-object v11, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v11, v11, v0 aget-object v10, v10, v11 cmpg-float v11, v9, v2 if-gez v11, :cond_35 const v11, -0x457ced91 # -0.001f cmpl-float v11, v9, v11 if-lez v11, :cond_46 .line 521 iget-object v9, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aput v2, v9, v0 .line 523 iget-object v9, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mRow:Landroidx/constraintlayout/solver/ArrayRow; invoke-virtual {v10, v9}, Landroidx/constraintlayout/solver/SolverVariable;->removeFromRow(Landroidx/constraintlayout/solver/ArrayRow;)V goto :goto_45 :cond_35 const v11, 0x3a83126f # 0.001f cmpg-float v11, v9, v11 if-gez v11, :cond_46 .line 527 iget-object v9, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aput v2, v9, v0 .line 529 iget-object v9, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mRow:Landroidx/constraintlayout/solver/ArrayRow; invoke-virtual {v10, v9}, Landroidx/constraintlayout/solver/SolverVariable;->removeFromRow(Landroidx/constraintlayout/solver/ArrayRow;)V :goto_45 move v9, v2 :cond_46 cmpl-float v11, v9, v2 if-eqz v11, :cond_94 .line 533 iget-object v11, v10, Landroidx/constraintlayout/solver/SolverVariable;->mType:Landroidx/constraintlayout/solver/SolverVariable$Type; sget-object v12, Landroidx/constraintlayout/solver/SolverVariable$Type;->UNRESTRICTED:Landroidx/constraintlayout/solver/SolverVariable$Type; const/4 v13, 0x1 if-ne v11, v12, :cond_70 if-nez v3, :cond_5b .line 537 invoke-direct {p0, v10, p1}, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->isNew(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/LinearSystem;)Z move-result v3 :goto_57 move v5, v3 move v7, v9 move-object v3, v10 goto :goto_94 :cond_5b cmpl-float v11, v7, v9 if-lez v11, :cond_64 .line 541 invoke-direct {p0, v10, p1}, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->isNew(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/LinearSystem;)Z move-result v3 goto :goto_57 :cond_64 if-nez v5, :cond_94 .line 542 invoke-direct {p0, v10, p1}, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->isNew(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/LinearSystem;)Z move-result v11 if-eqz v11, :cond_94 move v7, v9 move-object v3, v10 move v5, v13 goto :goto_94 :cond_70 if-nez v3, :cond_94 cmpg-float v11, v9, v2 if-gez v11, :cond_94 if-nez v1, :cond_80 .line 552 invoke-direct {p0, v10, p1}, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->isNew(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/LinearSystem;)Z move-result v1 :goto_7c move v6, v1 move v8, v9 move-object v1, v10 goto :goto_94 :cond_80 cmpl-float v11, v8, v9 if-lez v11, :cond_89 .line 556 invoke-direct {p0, v10, p1}, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->isNew(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/LinearSystem;)Z move-result v1 goto :goto_7c :cond_89 if-nez v6, :cond_94 .line 557 invoke-direct {p0, v10, p1}, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->isNew(Landroidx/constraintlayout/solver/SolverVariable;Landroidx/constraintlayout/solver/LinearSystem;)Z move-result v11 if-eqz v11, :cond_94 move v8, v9 move-object v1, v10 move v6, v13 .line 565 :cond_94 :goto_94 iget-object v9, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v0, v9, v0 add-int/lit8 v4, v4, 0x1 goto/16 :goto_b :cond_9c if-eqz v3, :cond_9f return-object v3 :cond_9f return-object v1 .end method .method public final clear()V .registers 6 .line 385 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I const/4 v1, 0x0 move v2, v1 :goto_4 const/4 v3, -0x1 if-eq v0, v3, :cond_23 .line 387 iget v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v2, v4, :cond_23 .line 388 iget-object v3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mCache:Landroidx/constraintlayout/solver/Cache; iget-object v3, v3, Landroidx/constraintlayout/solver/Cache;->mIndexedVariables:[Landroidx/constraintlayout/solver/SolverVariable; iget-object v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v4, v4, v0 aget-object v3, v3, v4 if-eqz v3, :cond_1c .line 390 iget-object v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mRow:Landroidx/constraintlayout/solver/ArrayRow; invoke-virtual {v3, v4}, Landroidx/constraintlayout/solver/SolverVariable;->removeFromRow(Landroidx/constraintlayout/solver/ArrayRow;)V .line 392 :cond_1c iget-object v3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v0, v3, v0 add-int/lit8 v2, v2, 0x1 goto :goto_4 .line 395 :cond_23 iput v3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I .line 396 iput v3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I .line 397 iput-boolean v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mDidFillOnce:Z .line 398 iput v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I return-void .end method .method final containsKey(Landroidx/constraintlayout/solver/SolverVariable;)Z .registers 8 .line 408 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I const/4 v1, 0x0 const/4 v2, -0x1 if-ne v0, v2, :cond_7 return v1 :cond_7 move v3, v1 :goto_8 if-eq v0, v2, :cond_1f .line 413 iget v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v3, v4, :cond_1f .line 414 iget-object v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v4, v4, v0 iget v5, p1, Landroidx/constraintlayout/solver/SolverVariable;->id:I if-ne v4, v5, :cond_18 const/4 p1, 0x1 return p1 .line 417 :cond_18 iget-object v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v0, v4, v0 add-int/lit8 v3, v3, 0x1 goto :goto_8 :cond_1f return v1 .end method .method public display()V .registers 6 .line 779 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I .line 780 sget-object v1, Ljava/lang/System;->out:Ljava/io/PrintStream; const-string v2, "{ " invoke-virtual {v1, v2}, Ljava/io/PrintStream;->print(Ljava/lang/String;)V const/4 v1, 0x0 :goto_a if-ge v1, v0, :cond_3c .line 782 invoke-virtual {p0, v1}, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->getVariable(I)Landroidx/constraintlayout/solver/SolverVariable; move-result-object v2 if-nez v2, :cond_13 goto :goto_39 .line 786 :cond_13 sget-object v3, Ljava/lang/System;->out:Ljava/io/PrintStream; new-instance v4, Ljava/lang/StringBuilder; invoke-direct {v4}, Ljava/lang/StringBuilder;->()V invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v2 const-string v4, " = " invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {p0, v1}, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->getVariableValue(I)F move-result v4 invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder; move-result-object v2 const-string v4, " " invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-virtual {v3, v2}, Ljava/io/PrintStream;->print(Ljava/lang/String;)V :goto_39 add-int/lit8 v1, v1, 0x1 goto :goto_a .line 788 :cond_3c sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream; const-string v1, " }" invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V return-void .end method .method divideByAmount(F)V .registers 6 .line 458 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I const/4 v1, 0x0 :goto_3 const/4 v2, -0x1 if-eq v0, v2, :cond_18 .line 460 iget v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v1, v2, :cond_18 .line 461 iget-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aget v3, v2, v0 div-float/2addr v3, p1 aput v3, v2, v0 .line 462 iget-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v0, v2, v0 add-int/lit8 v1, v1, 0x1 goto :goto_3 :cond_18 return-void .end method .method public final get(Landroidx/constraintlayout/solver/SolverVariable;)F .registers 6 .line 759 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I const/4 v1, 0x0 :goto_3 const/4 v2, -0x1 if-eq v0, v2, :cond_1e .line 761 iget v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v1, v2, :cond_1e .line 762 iget-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v2, v2, v0 iget v3, p1, Landroidx/constraintlayout/solver/SolverVariable;->id:I if-ne v2, v3, :cond_17 .line 763 iget-object p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aget p1, p1, v0 return p1 .line 765 :cond_17 iget-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v0, v2, v0 add-int/lit8 v1, v1, 0x1 goto :goto_3 :cond_1e const/4 p1, 0x0 return p1 .end method .method getPivotCandidate()Landroidx/constraintlayout/solver/SolverVariable; .registers 7 .line 668 iget-object v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->candidate:Landroidx/constraintlayout/solver/SolverVariable; if-nez v0, :cond_33 .line 670 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I const/4 v1, 0x0 const/4 v2, 0x0 :goto_8 const/4 v3, -0x1 if-eq v0, v3, :cond_32 .line 673 iget v3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v1, v3, :cond_32 .line 674 iget-object v3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aget v3, v3, v0 const/4 v4, 0x0 cmpg-float v3, v3, v4 if-gez v3, :cond_2b .line 678 iget-object v3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mCache:Landroidx/constraintlayout/solver/Cache; iget-object v3, v3, Landroidx/constraintlayout/solver/Cache;->mIndexedVariables:[Landroidx/constraintlayout/solver/SolverVariable; iget-object v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v4, v4, v0 aget-object v3, v3, v4 if-eqz v2, :cond_2a .line 679 iget v4, v2, Landroidx/constraintlayout/solver/SolverVariable;->strength:I iget v5, v3, Landroidx/constraintlayout/solver/SolverVariable;->strength:I if-ge v4, v5, :cond_2b :cond_2a move-object v2, v3 .line 683 :cond_2b iget-object v3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v0, v3, v0 add-int/lit8 v1, v1, 0x1 goto :goto_8 :cond_32 return-object v2 :cond_33 return-object v0 .end method .method getPivotCandidate([ZLandroidx/constraintlayout/solver/SolverVariable;)Landroidx/constraintlayout/solver/SolverVariable; .registers 11 .line 691 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I const/4 v1, 0x0 const/4 v2, 0x0 const/4 v3, 0x0 move v4, v3 :goto_6 const/4 v5, -0x1 if-eq v0, v5, :cond_46 .line 695 iget v5, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v1, v5, :cond_46 .line 696 iget-object v5, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aget v5, v5, v0 cmpg-float v5, v5, v3 if-gez v5, :cond_3f .line 700 iget-object v5, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mCache:Landroidx/constraintlayout/solver/Cache; iget-object v5, v5, Landroidx/constraintlayout/solver/Cache;->mIndexedVariables:[Landroidx/constraintlayout/solver/SolverVariable; iget-object v6, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v6, v6, v0 aget-object v5, v5, v6 if-eqz p1, :cond_27 .line 701 iget v6, v5, Landroidx/constraintlayout/solver/SolverVariable;->id:I aget-boolean v6, p1, v6 if-nez v6, :cond_3f :cond_27 if-eq v5, p2, :cond_3f .line 702 iget-object v6, v5, Landroidx/constraintlayout/solver/SolverVariable;->mType:Landroidx/constraintlayout/solver/SolverVariable$Type; sget-object v7, Landroidx/constraintlayout/solver/SolverVariable$Type;->SLACK:Landroidx/constraintlayout/solver/SolverVariable$Type; if-eq v6, v7, :cond_35 iget-object v6, v5, Landroidx/constraintlayout/solver/SolverVariable;->mType:Landroidx/constraintlayout/solver/SolverVariable$Type; sget-object v7, Landroidx/constraintlayout/solver/SolverVariable$Type;->ERROR:Landroidx/constraintlayout/solver/SolverVariable$Type; if-ne v6, v7, :cond_3f .line 704 :cond_35 iget-object v6, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aget v6, v6, v0 cmpg-float v7, v6, v4 if-gez v7, :cond_3f move-object v2, v5 move v4, v6 .line 712 :cond_3f iget-object v5, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v0, v5, v0 add-int/lit8 v1, v1, 0x1 goto :goto_6 :cond_46 return-object v2 .end method .method final getVariable(I)Landroidx/constraintlayout/solver/SolverVariable; .registers 5 .line 724 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I const/4 v1, 0x0 :goto_3 const/4 v2, -0x1 if-eq v0, v2, :cond_1e .line 726 iget v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v1, v2, :cond_1e if-ne v1, p1, :cond_17 .line 728 iget-object p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mCache:Landroidx/constraintlayout/solver/Cache; iget-object p1, p1, Landroidx/constraintlayout/solver/Cache;->mIndexedVariables:[Landroidx/constraintlayout/solver/SolverVariable; iget-object v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v0, v1, v0 aget-object p1, p1, v0 return-object p1 .line 730 :cond_17 iget-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v0, v2, v0 add-int/lit8 v1, v1, 0x1 goto :goto_3 :cond_1e const/4 p1, 0x0 return-object p1 .end method .method final getVariableValue(I)F .registers 5 .line 742 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I const/4 v1, 0x0 :goto_3 const/4 v2, -0x1 if-eq v0, v2, :cond_18 .line 744 iget v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v1, v2, :cond_18 if-ne v1, p1, :cond_11 .line 746 iget-object p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aget p1, p1, v0 return p1 .line 748 :cond_11 iget-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v0, v2, v0 add-int/lit8 v1, v1, 0x1 goto :goto_3 :cond_18 const/4 p1, 0x0 return p1 .end method .method hasAtLeastOnePositiveVariable()Z .registers 6 .line 428 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I const/4 v1, 0x0 move v2, v1 :goto_4 const/4 v3, -0x1 if-eq v0, v3, :cond_1d .line 430 iget v3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v2, v3, :cond_1d .line 431 iget-object v3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aget v3, v3, v0 const/4 v4, 0x0 cmpl-float v3, v3, v4 if-lez v3, :cond_16 const/4 v0, 0x1 return v0 .line 434 :cond_16 iget-object v3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v0, v3, v0 add-int/lit8 v2, v2, 0x1 goto :goto_4 :cond_1d return v1 .end method .method invert()V .registers 6 .line 443 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I const/4 v1, 0x0 :goto_3 const/4 v2, -0x1 if-eq v0, v2, :cond_1a .line 445 iget v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v1, v2, :cond_1a .line 446 iget-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aget v3, v2, v0 const/high16 v4, -0x40800000 # -1.0f mul-float/2addr v3, v4 aput v3, v2, v0 .line 447 iget-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v0, v2, v0 add-int/lit8 v1, v1, 0x1 goto :goto_3 :cond_1a return-void .end method .method public final put(Landroidx/constraintlayout/solver/SolverVariable;F)V .registers 11 const/4 v0, 0x0 cmpl-float v0, p2, v0 const/4 v1, 0x1 if-nez v0, :cond_a .line 118 invoke-virtual {p0, p1, v1}, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->remove(Landroidx/constraintlayout/solver/SolverVariable;Z)F return-void .line 122 :cond_a iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I const/4 v2, 0x0 const/4 v3, -0x1 if-ne v0, v3, :cond_46 .line 123 iput v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I .line 124 iget-object v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aput p2, v0, v2 .line 125 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I iget v0, p1, Landroidx/constraintlayout/solver/SolverVariable;->id:I aput v0, p2, v2 .line 126 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I aput v3, p2, v0 .line 127 iget p2, p1, Landroidx/constraintlayout/solver/SolverVariable;->usageInRowCount:I add-int/2addr p2, v1 iput p2, p1, Landroidx/constraintlayout/solver/SolverVariable;->usageInRowCount:I .line 128 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mRow:Landroidx/constraintlayout/solver/ArrayRow; invoke-virtual {p1, p2}, Landroidx/constraintlayout/solver/SolverVariable;->addToRow(Landroidx/constraintlayout/solver/ArrayRow;)V .line 129 iget p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I add-int/2addr p1, v1 iput p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I .line 130 iget-boolean p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mDidFillOnce:Z if-nez p1, :cond_45 .line 132 iget p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I add-int/2addr p1, v1 iput p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I .line 133 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I array-length v0, p2 if-lt p1, v0, :cond_45 .line 134 iput-boolean v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mDidFillOnce:Z .line 135 array-length p1, p2 sub-int/2addr p1, v1 iput p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I :cond_45 return-void :cond_46 move v4, v2 move v5, v3 :goto_48 if-eq v0, v3, :cond_6b .line 143 iget v6, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v4, v6, :cond_6b .line 144 iget-object v6, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v6, v6, v0 iget v7, p1, Landroidx/constraintlayout/solver/SolverVariable;->id:I if-ne v6, v7, :cond_5b .line 145 iget-object p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aput p2, p1, v0 return-void .line 148 :cond_5b iget-object v6, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v6, v6, v0 iget v7, p1, Landroidx/constraintlayout/solver/SolverVariable;->id:I if-ge v6, v7, :cond_64 move v5, v0 .line 151 :cond_64 iget-object v6, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v0, v6, v0 add-int/lit8 v4, v4, 0x1 goto :goto_48 .line 157 :cond_6b iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I add-int/lit8 v4, v0, 0x1 .line 158 iget-boolean v6, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mDidFillOnce:Z if-eqz v6, :cond_7c .line 161 iget-object v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v6, v4, v0 if-ne v6, v3, :cond_7a goto :goto_7d .line 164 :cond_7a array-length v0, v4 goto :goto_7d :cond_7c move v0, v4 .line 167 :goto_7d iget-object v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I array-length v6, v4 if-lt v0, v6, :cond_96 .line 168 iget v6, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I array-length v4, v4 if-ge v6, v4, :cond_96 move v4, v2 .line 170 :goto_88 iget-object v6, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I array-length v7, v6 if-ge v4, v7, :cond_96 .line 171 aget v6, v6, v4 if-ne v6, v3, :cond_93 move v0, v4 goto :goto_96 :cond_93 add-int/lit8 v4, v4, 0x1 goto :goto_88 .line 179 :cond_96 :goto_96 iget-object v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I array-length v6, v4 if-lt v0, v6, :cond_c4 .line 180 array-length v0, v4 .line 181 iget v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->ROW_SIZE:I mul-int/lit8 v4, v4, 0x2 iput v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->ROW_SIZE:I .line 182 iput-boolean v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mDidFillOnce:Z add-int/lit8 v2, v0, -0x1 .line 183 iput v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I .line 184 iget-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F invoke-static {v2, v4}, Ljava/util/Arrays;->copyOf([FI)[F move-result-object v2 iput-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F .line 185 iget-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I iget v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->ROW_SIZE:I invoke-static {v2, v4}, Ljava/util/Arrays;->copyOf([II)[I move-result-object v2 iput-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I .line 186 iget-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I iget v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->ROW_SIZE:I invoke-static {v2, v4}, Ljava/util/Arrays;->copyOf([II)[I move-result-object v2 iput-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I .line 190 :cond_c4 iget-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I iget v4, p1, Landroidx/constraintlayout/solver/SolverVariable;->id:I aput v4, v2, v0 .line 191 iget-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aput p2, v2, v0 if-eq v5, v3, :cond_d9 .line 193 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v2, p2, v5 aput v2, p2, v0 .line 194 aput v0, p2, v5 goto :goto_e1 .line 196 :cond_d9 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I iget v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I aput v2, p2, v0 .line 197 iput v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I .line 199 :goto_e1 iget p2, p1, Landroidx/constraintlayout/solver/SolverVariable;->usageInRowCount:I add-int/2addr p2, v1 iput p2, p1, Landroidx/constraintlayout/solver/SolverVariable;->usageInRowCount:I .line 200 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mRow:Landroidx/constraintlayout/solver/ArrayRow; invoke-virtual {p1, p2}, Landroidx/constraintlayout/solver/SolverVariable;->addToRow(Landroidx/constraintlayout/solver/ArrayRow;)V .line 201 iget p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I add-int/2addr p1, v1 iput p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I .line 202 iget-boolean p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mDidFillOnce:Z if-nez p2, :cond_f9 .line 204 iget p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I add-int/2addr p2, v1 iput p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I .line 206 :cond_f9 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I array-length v0, p2 if-lt p1, v0, :cond_100 .line 207 iput-boolean v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mDidFillOnce:Z .line 209 :cond_100 iget p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I array-length v0, p2 if-lt p1, v0, :cond_10b .line 210 iput-boolean v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mDidFillOnce:Z .line 211 array-length p1, p2 sub-int/2addr p1, v1 iput p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I :cond_10b return-void .end method .method public final remove(Landroidx/constraintlayout/solver/SolverVariable;Z)F .registers 11 .line 345 iget-object v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->candidate:Landroidx/constraintlayout/solver/SolverVariable; if-ne v0, p1, :cond_7 const/4 v0, 0x0 .line 346 iput-object v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->candidate:Landroidx/constraintlayout/solver/SolverVariable; .line 348 :cond_7 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I const/4 v1, 0x0 const/4 v2, -0x1 if-ne v0, v2, :cond_e return v1 :cond_e const/4 v3, 0x0 move v4, v2 :goto_10 if-eq v0, v2, :cond_5b .line 354 iget v5, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v3, v5, :cond_5b .line 355 iget-object v5, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v5, v5, v0 .line 356 iget v6, p1, Landroidx/constraintlayout/solver/SolverVariable;->id:I if-ne v5, v6, :cond_51 .line 357 iget v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I if-ne v0, v1, :cond_29 .line 358 iget-object v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v1, v1, v0 iput v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I goto :goto_2f .line 360 :cond_29 iget-object v1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v3, v1, v0 aput v3, v1, v4 :goto_2f if-eqz p2, :cond_36 .line 364 iget-object p2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mRow:Landroidx/constraintlayout/solver/ArrayRow; invoke-virtual {p1, p2}, Landroidx/constraintlayout/solver/SolverVariable;->removeFromRow(Landroidx/constraintlayout/solver/ArrayRow;)V .line 366 :cond_36 iget p2, p1, Landroidx/constraintlayout/solver/SolverVariable;->usageInRowCount:I add-int/lit8 p2, p2, -0x1 iput p2, p1, Landroidx/constraintlayout/solver/SolverVariable;->usageInRowCount:I .line 367 iget p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I add-int/lit8 p1, p1, -0x1 iput p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I .line 368 iget-object p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aput v2, p1, v0 .line 369 iget-boolean p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mDidFillOnce:Z if-eqz p1, :cond_4c .line 371 iput v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mLast:I .line 373 :cond_4c iget-object p1, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aget p1, p1, v0 return p1 .line 376 :cond_51 iget-object v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v4, v4, v0 add-int/lit8 v3, v3, 0x1 move v7, v4 move v4, v0 move v0, v7 goto :goto_10 :cond_5b return v1 .end method .method sizeInBytes()I .registers 2 .line 773 iget-object v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I array-length v0, v0 mul-int/lit8 v0, v0, 0xc add-int/lit8 v0, v0, 0x24 return v0 .end method .method public toString()Ljava/lang/String; .registers 6 .line 799 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I .line 800 const-string v1, "" const/4 v2, 0x0 :goto_5 const/4 v3, -0x1 if-eq v0, v3, :cond_5c .line 801 iget v3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v2, v3, :cond_5c .line 802 new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;->()V invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 const-string v3, " -> " invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 .line 803 new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;->()V invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 iget-object v3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aget v3, v3, v0 invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder; move-result-object v1 const-string v3, " : " invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 .line 804 new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;->()V invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 iget-object v3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mCache:Landroidx/constraintlayout/solver/Cache; iget-object v3, v3, Landroidx/constraintlayout/solver/Cache;->mIndexedVariables:[Landroidx/constraintlayout/solver/SolverVariable; iget-object v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v4, v4, v0 aget-object v3, v3, v4 invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 .line 805 iget-object v3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v0, v3, v0 add-int/lit8 v2, v2, 0x1 goto :goto_5 :cond_5c return-object v1 .end method .method final updateFromRow(Landroidx/constraintlayout/solver/ArrayRow;Landroidx/constraintlayout/solver/ArrayRow;Z)V .registers 12 .line 583 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I const/4 v1, 0x0 :goto_3 move v2, v1 :goto_4 const/4 v3, -0x1 if-eq v0, v3, :cond_5e .line 585 iget v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v2, v4, :cond_5e .line 586 iget-object v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v4, v4, v0 iget-object v5, p2, Landroidx/constraintlayout/solver/ArrayRow;->variable:Landroidx/constraintlayout/solver/SolverVariable; iget v5, v5, Landroidx/constraintlayout/solver/SolverVariable;->id:I if-ne v4, v5, :cond_57 .line 587 iget-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aget v0, v2, v0 .line 588 iget-object v2, p2, Landroidx/constraintlayout/solver/ArrayRow;->variable:Landroidx/constraintlayout/solver/SolverVariable; invoke-virtual {p0, v2, p3}, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->remove(Landroidx/constraintlayout/solver/SolverVariable;Z)F .line 590 iget-object v2, p2, Landroidx/constraintlayout/solver/ArrayRow;->variables:Landroidx/constraintlayout/solver/ArrayLinkedVariables; move-object v4, v2 check-cast v4, Landroidx/constraintlayout/solver/ArrayLinkedVariables; .line 591 iget v4, v2, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I move v5, v1 :goto_26 if-eq v4, v3, :cond_45 .line 593 iget v6, v2, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v5, v6, :cond_45 .line 594 iget-object v6, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mCache:Landroidx/constraintlayout/solver/Cache; iget-object v6, v6, Landroidx/constraintlayout/solver/Cache;->mIndexedVariables:[Landroidx/constraintlayout/solver/SolverVariable; iget-object v7, v2, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v7, v7, v4 aget-object v6, v6, v7 .line 596 iget-object v7, v2, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aget v7, v7, v4 mul-float/2addr v7, v0 .line 597 invoke-virtual {p0, v6, v7, p3}, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->add(Landroidx/constraintlayout/solver/SolverVariable;FZ)V .line 598 iget-object v6, v2, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v4, v6, v4 add-int/lit8 v5, v5, 0x1 goto :goto_26 .line 600 :cond_45 iget v2, p1, Landroidx/constraintlayout/solver/ArrayRow;->constantValue:F iget v3, p2, Landroidx/constraintlayout/solver/ArrayRow;->constantValue:F mul-float/2addr v3, v0 add-float/2addr v2, v3 iput v2, p1, Landroidx/constraintlayout/solver/ArrayRow;->constantValue:F if-eqz p3, :cond_54 .line 602 iget-object v0, p2, Landroidx/constraintlayout/solver/ArrayRow;->variable:Landroidx/constraintlayout/solver/SolverVariable; invoke-virtual {v0, p1}, Landroidx/constraintlayout/solver/SolverVariable;->removeFromRow(Landroidx/constraintlayout/solver/ArrayRow;)V .line 608 :cond_54 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I goto :goto_3 .line 612 :cond_57 iget-object v3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v0, v3, v0 add-int/lit8 v2, v2, 0x1 goto :goto_4 :cond_5e return-void .end method .method updateFromSystem(Landroidx/constraintlayout/solver/ArrayRow;[Landroidx/constraintlayout/solver/ArrayRow;)V .registers 13 .line 626 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I const/4 v1, 0x0 :goto_3 move v2, v1 :goto_4 const/4 v3, -0x1 if-eq v0, v3, :cond_67 .line 628 iget v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v2, v4, :cond_67 .line 629 iget-object v4, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mCache:Landroidx/constraintlayout/solver/Cache; iget-object v4, v4, Landroidx/constraintlayout/solver/Cache;->mIndexedVariables:[Landroidx/constraintlayout/solver/SolverVariable; iget-object v5, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v5, v5, v0 aget-object v4, v4, v5 .line 630 iget v5, v4, Landroidx/constraintlayout/solver/SolverVariable;->definitionId:I if-eq v5, v3, :cond_60 .line 631 iget-object v2, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aget v0, v2, v0 const/4 v2, 0x1 .line 632 invoke-virtual {p0, v4, v2}, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->remove(Landroidx/constraintlayout/solver/SolverVariable;Z)F .line 634 iget v4, v4, Landroidx/constraintlayout/solver/SolverVariable;->definitionId:I aget-object v4, p2, v4 .line 635 iget-boolean v5, v4, Landroidx/constraintlayout/solver/ArrayRow;->isSimpleDefinition:Z if-nez v5, :cond_50 .line 636 iget-object v5, v4, Landroidx/constraintlayout/solver/ArrayRow;->variables:Landroidx/constraintlayout/solver/ArrayLinkedVariables; move-object v6, v5 check-cast v6, Landroidx/constraintlayout/solver/ArrayLinkedVariables; .line 637 iget v6, v5, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I move v7, v1 :goto_31 if-eq v6, v3, :cond_50 .line 639 iget v8, v5, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->currentSize:I if-ge v7, v8, :cond_50 .line 640 iget-object v8, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mCache:Landroidx/constraintlayout/solver/Cache; iget-object v8, v8, Landroidx/constraintlayout/solver/Cache;->mIndexedVariables:[Landroidx/constraintlayout/solver/SolverVariable; iget-object v9, v5, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayIndices:[I aget v9, v9, v6 aget-object v8, v8, v9 .line 642 iget-object v9, v5, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayValues:[F aget v9, v9, v6 mul-float/2addr v9, v0 .line 643 invoke-virtual {p0, v8, v9, v2}, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->add(Landroidx/constraintlayout/solver/SolverVariable;FZ)V .line 644 iget-object v8, v5, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v6, v8, v6 add-int/lit8 v7, v7, 0x1 goto :goto_31 .line 648 :cond_50 iget v2, p1, Landroidx/constraintlayout/solver/ArrayRow;->constantValue:F iget v3, v4, Landroidx/constraintlayout/solver/ArrayRow;->constantValue:F mul-float/2addr v3, v0 add-float/2addr v2, v3 iput v2, p1, Landroidx/constraintlayout/solver/ArrayRow;->constantValue:F .line 649 iget-object v0, v4, Landroidx/constraintlayout/solver/ArrayRow;->variable:Landroidx/constraintlayout/solver/SolverVariable; invoke-virtual {v0, p1}, Landroidx/constraintlayout/solver/SolverVariable;->removeFromRow(Landroidx/constraintlayout/solver/ArrayRow;)V .line 654 iget v0, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mHead:I goto :goto_3 .line 658 :cond_60 iget-object v3, p0, Landroidx/constraintlayout/solver/ArrayLinkedVariables;->mArrayNextIndices:[I aget v0, v3, v0 add-int/lit8 v2, v2, 0x1 goto :goto_4 :cond_67 return-void .end method