Insert patched frame instructions in the right place

Fixes: b/274337639
Change-Id: Iae204ed529f9af5bf5fa3eaacba45128dfa6fd9e
diff --git a/src/main/java/com/android/tools/r8/graph/LazyCfCode.java b/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
index 153f85f..d393d72 100644
--- a/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
+++ b/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
@@ -493,7 +493,7 @@
             builder.push(frameType);
           }
         }
-        instructions.add(builder.build());
+        instructions.set(instructionIndex, builder.build());
       }
     }
 
diff --git a/src/test/java/com/android/tools/r8/cf/frames/InitBeforeNewInInstructionStreamTest.java b/src/test/java/com/android/tools/r8/cf/frames/InitBeforeNewInInstructionStreamTest.java
index 65e0fb1..1d93a7a 100644
--- a/src/test/java/com/android/tools/r8/cf/frames/InitBeforeNewInInstructionStreamTest.java
+++ b/src/test/java/com/android/tools/r8/cf/frames/InitBeforeNewInInstructionStreamTest.java
@@ -3,10 +3,8 @@
 // BSD-style license that can be found in the LICENSE file.
 package com.android.tools.r8.cf.frames;
 
-import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.fail;
 
-import com.android.tools.r8.CompilationFailedException;
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
@@ -61,15 +59,12 @@
   @Test
   public void testR8() throws Exception {
     parameters.assumeR8TestParameters();
-    assertThrows(
-        CompilationFailedException.class,
-        () ->
-            testForR8(parameters.getBackend())
-                .addProgramClassFileData(patchedDump())
-                .addKeepMainRule(MAIN_CLASS)
-                .setMinApi(parameters)
-                .run(parameters.getRuntime(), MAIN_CLASS)
-                .assertSuccessWithOutput(EXPECTED_OUTPUT));
+    testForR8(parameters.getBackend())
+        .addProgramClassFileData(patchedDump())
+        .addKeepMainRule(MAIN_CLASS)
+        .setMinApi(parameters)
+        .run(parameters.getRuntime(), MAIN_CLASS)
+        .assertSuccessWithOutput(EXPECTED_OUTPUT);
   }
 
   // This is reproducing b/b274337639, where a new instruction is before the corresponding