From ff9b3671d912e1f8128166dea1ed11736e7c3440 Mon Sep 17 00:00:00 2001 From: Oliver Nguyen Date: Tue, 5 Apr 2022 15:38:20 -0700 Subject: Enable jacocoagent to build as host module. Fixes stack frame map when instrumenting branches for newer bytecode versions. Test: EMMA_INSTRUMENT=true EMMA_INSTRUMENT_STATIC=true m HelloWorldHostTest Bug: 214313542 Change-Id: I418dc48ccfdd537986b42280549a72e46dc8ed06 --- Android.bp | 1 + .../org/jacoco/core/internal/instr/ClassFieldProbeArrayStrategy.java | 2 +- org.jacoco.core/src/org/jacoco/core/internal/instr/InstrSupport.java | 3 ++- org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeInserter.java | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Android.bp b/Android.bp index aad52a34..25801a46 100644 --- a/Android.bp +++ b/Android.bp @@ -58,6 +58,7 @@ license { java_library { name: "jacocoagent", + host_supported: true, installable: true, apex_available: [ diff --git a/org.jacoco.core/src/org/jacoco/core/internal/instr/ClassFieldProbeArrayStrategy.java b/org.jacoco.core/src/org/jacoco/core/internal/instr/ClassFieldProbeArrayStrategy.java index 7a54b6d8..3e26d1b4 100644 --- a/org.jacoco.core/src/org/jacoco/core/internal/instr/ClassFieldProbeArrayStrategy.java +++ b/org.jacoco.core/src/org/jacoco/core/internal/instr/ClassFieldProbeArrayStrategy.java @@ -29,7 +29,7 @@ class ClassFieldProbeArrayStrategy implements IProbeArrayStrategy { * Frame stack with a single boolean array. */ private static final Object[] FRAME_STACK_ARRZ = new Object[] { - InstrSupport.DATAFIELD_DESC }; + InstrSupport.DATAFIELD_DESC_UNQUALIFIED }; /** * Empty frame locals. diff --git a/org.jacoco.core/src/org/jacoco/core/internal/instr/InstrSupport.java b/org.jacoco.core/src/org/jacoco/core/internal/instr/InstrSupport.java index c125112d..a805e0ff 100644 --- a/org.jacoco.core/src/org/jacoco/core/internal/instr/InstrSupport.java +++ b/org.jacoco.core/src/org/jacoco/core/internal/instr/InstrSupport.java @@ -79,7 +79,8 @@ public final class InstrSupport { * boolean[]). */ // BEGIN android-change - public static final String DATAFIELD_DESC = "Lorg/jacoco/core/data/IExecutionData;"; + public static final String DATAFIELD_DESC_UNQUALIFIED = "org/jacoco/core/data/IExecutionData"; + public static final String DATAFIELD_DESC = "L" + DATAFIELD_DESC_UNQUALIFIED + ";"; // END android-change // === Init Method === diff --git a/org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeInserter.java b/org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeInserter.java index 20794f60..59dff4bf 100644 --- a/org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeInserter.java +++ b/org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeInserter.java @@ -154,7 +154,7 @@ class ProbeInserter extends MethodVisitor implements IProbeInserter { int pos = 0; // Current variable position while (idx < nLocal || pos <= variable) { if (pos == variable) { - newLocal[newIdx++] = InstrSupport.DATAFIELD_DESC; + newLocal[newIdx++] = InstrSupport.DATAFIELD_DESC_UNQUALIFIED; pos++; } else { if (idx < nLocal) { -- cgit v1.2.3