Fix stack height for ContentProviderClient.close backport

Bug: b/276874854
Change-Id: I1304ec7fc6ca84a3864c503397a5f753a561e6de
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/backports/ContentProviderClientMethodRewrites.java b/src/main/java/com/android/tools/r8/ir/desugar/backports/ContentProviderClientMethodRewrites.java
index 8881483..5d1114b 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/backports/ContentProviderClientMethodRewrites.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/backports/ContentProviderClientMethodRewrites.java
@@ -4,8 +4,16 @@
 
 package com.android.tools.r8.ir.desugar.backports;
 
+import com.android.tools.r8.cf.code.CfInstruction;
 import com.android.tools.r8.cf.code.CfInvoke;
+import com.android.tools.r8.cf.code.CfStackInstruction;
+import com.android.tools.r8.cf.code.CfStackInstruction.Opcode;
+import com.android.tools.r8.graph.DexItemFactory;
+import com.android.tools.r8.ir.desugar.BackportedMethodRewriter.FullMethodInvokeRewriter;
 import com.android.tools.r8.ir.desugar.BackportedMethodRewriter.MethodInvokeRewriter;
+import com.android.tools.r8.ir.desugar.LocalStackAllocator;
+import com.google.common.collect.ImmutableList;
+import java.util.Collection;
 import org.objectweb.asm.Opcodes;
 
 public final class ContentProviderClientMethodRewrites {
@@ -15,10 +23,18 @@
   public static MethodInvokeRewriter rewriteClose() {
     // Rewrite android/content/ContentProviderClient#close to
     // android/content/ContentProviderClient#recycle
-    return (invoke, factory) ->
-        new CfInvoke(
-            Opcodes.INVOKEVIRTUAL,
-            factory.androidContentContentProviderClientMembers.release,
-            false);
+    return new FullMethodInvokeRewriter() {
+      @Override
+      public Collection<CfInstruction> rewrite(
+          CfInvoke invoke, DexItemFactory factory, LocalStackAllocator localStackAllocator) {
+        // The invoke consumes the stack value and pushes another assumed to be the same.
+        return ImmutableList.of(
+            new CfInvoke(
+                Opcodes.INVOKEVIRTUAL,
+                factory.androidContentContentProviderClientMembers.release,
+                false),
+            new CfStackInstruction(Opcode.Pop));
+      }
+    };
   }
 }