summaryrefslogtreecommitdiff
path: root/compiler/dex/inline_method_analyser.h
diff options
context:
space:
mode:
author wangmingming1 <wangmingming1@xiaomi.com> 2024-10-15 20:15:17 +0800
committer VladimĂ­r Marko <vmarko@google.com> 2024-10-17 13:36:01 +0000
commitf0c45c0576f53b81c80a7d868d54fad41a7bae8b (patch)
treebb4ccc8eaff7379d392e943831cdbacdd74a0967 /compiler/dex/inline_method_analyser.h
parenta5f50ab9af9f5456bbd4b49def3393e3986b21e1 (diff)
fix inliner bug
I see field index of a class member variable is 0xFFFF which will cause TryPatternSubstitution throw away the iput-xxx instruction ```code void zyb.<init>(com.mi.fitness.netproxy.NetProxyManager) (dex_method_idx=20258) DEX CODE: 0x0000: 7010 273f 0000 | invoke-direct {v0}, void java.lang.Object.<init>() // method@16167 0x0003: 5b01 ffff | iput-object v1, v0, Lcom/mi/fitness/netproxy/NetProxyManager; zyb.a // field@65535 0x0005: 0e00 | return-void ``` Bug: 368471540 Test: the above bug doesn't reproduce Change-Id: I6bee31e07e17982e00e0e22d476a36f554081c3d Signed-off-by: wangmingming1 <wangmingming1@xiaomi.com>
Diffstat (limited to 'compiler/dex/inline_method_analyser.h')
-rw-r--r--compiler/dex/inline_method_analyser.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/dex/inline_method_analyser.h b/compiler/dex/inline_method_analyser.h
index 4cd5b824f1..68e8912c93 100644
--- a/compiler/dex/inline_method_analyser.h
+++ b/compiler/dex/inline_method_analyser.h
@@ -76,7 +76,7 @@ struct InlineConstructorData {
uint16_t iput0_arg : 4;
uint16_t iput1_arg : 4;
uint16_t iput2_arg : 4;
- uint16_t reserved : 4;
+ uint16_t iput_count: 4;
};
static_assert(sizeof(InlineConstructorData) == sizeof(uint64_t),
"Invalid size of InlineConstructorData");