diff options
author | Maurice Lam <yukl@google.com> | 2021-07-20 18:25:41 +0000 |
---|---|---|
committer | Maurice Lam <yukl@google.com> | 2021-12-08 03:49:13 +0000 |
commit | 4a6d27bc4053b345dc697d5f4bd1af45d300900a (patch) | |
tree | c544807665f60b27e0f3909304f24e8e10b24e45 | |
parent | 2bc39b8424d00734d38ba5e1ae16c5d8b9374bf6 (diff) | |
download | jacoco-android12-qpr3-s4-release.tar.gz |
Disable use of 'constant dynamic' bytecodeandroid-12.1.0_r9android-12.1.0_r8android-12.1.0_r7android-12.1.0_r22android-12.1.0_r21android-12.1.0_r20android-12.1.0_r19android-12.1.0_r11android-12.1.0_r10android12L-devandroid12-qpr3-s7-releaseandroid12-qpr3-s6-releaseandroid12-qpr3-s5-releaseandroid12-qpr3-s4-releaseandroid12-qpr3-s3-releaseandroid12-qpr3-s2-releaseandroid12-qpr3-s1-releaseandroid12-qpr3-release
See https://github.com/jacoco/jacoco/issues/1151.
Bug: 194171230
Bug: 209359450
Test: m EMMA_INSTRUMENT=true EMMA_INSTRUMENT_FRAMEWORK=true FooTest
Change-Id: Idd5b9f2fd3824b8ee7f5a71504bd816694416b37
(cherry picked from commit 0d5db7bcb686284b47bd393f364b3691a81cdab5)
-rw-r--r-- | README.android | 3 | ||||
-rw-r--r-- | org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeArrayStrategyFactory.java | 22 |
2 files changed, 17 insertions, 8 deletions
diff --git a/README.android b/README.android index 8fa2b902..aa285834 100644 --- a/README.android +++ b/README.android @@ -21,3 +21,6 @@ is the list of the changes: more lightweight. The Agent is only created when it's actually needed. This makes it possible to instrument a lot of more core libraries without creating a circular dependency at runtime. +4) Disable use of 'constant dynamic' bytecode in + org.jacoco.core.internal.instr.ProbeArrayStrategyFactory, because R8/D8 doesn't support it. + (https://issuetracker.google.com/178172809) diff --git a/org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeArrayStrategyFactory.java b/org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeArrayStrategyFactory.java index d5756b7f..bc957b91 100644 --- a/org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeArrayStrategyFactory.java +++ b/org.jacoco.core/src/org/jacoco/core/internal/instr/ProbeArrayStrategyFactory.java @@ -50,10 +50,13 @@ public final class ProbeArrayStrategyFactory { if (counter.getCount() == 0) { return new NoneProbeArrayStrategy(); } - if (version >= Opcodes.V11 && counter.hasMethods()) { - return new CondyProbeArrayStrategy(className, true, classId, - accessorGenerator); - } +// BEGIN android-change + // See https://github.com/jacoco/jacoco/issues/1151 + // if (version >= Opcodes.V11 && counter.hasMethods()) { + // return new CondyProbeArrayStrategy(className, true, classId, + // accessorGenerator); + // } +// END android-change if (version >= Opcodes.V1_8 && counter.hasMethods()) { return new InterfaceFieldProbeArrayStrategy(className, classId, counter.getCount(), accessorGenerator); @@ -62,10 +65,13 @@ public final class ProbeArrayStrategyFactory { counter.getCount(), accessorGenerator); } } else { - if (version >= Opcodes.V11) { - return new CondyProbeArrayStrategy(className, false, classId, - accessorGenerator); - } +// BEGIN android-change + // See https://github.com/jacoco/jacoco/issues/1151 + // if (version >= Opcodes.V11) { + // return new CondyProbeArrayStrategy(className, false, classId, + // accessorGenerator); + // } +// END android-change return new ClassFieldProbeArrayStrategy(className, classId, InstrSupport.needsFrames(version), accessorGenerator); } |