From f7083ed806da454ba6a50ddef34799559f863fd4 Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Wed, 6 May 2015 14:09:04 +0100 Subject: [PATCH] Quick: Inline synthetic accessors generated by jack. While javac names synthetic accessors "access$nnn", jack names them "-getN", "-putN" and "-wrapN". For simplicity, treat all methods starting with "-" as synthetic accessors. Bug: 20873367 (cherry picked from commit d5f1005da7599f149b1332402c9791ef2acb8c42) Change-Id: Ifcc77fc3c5dd44797a48632c8e16416fbc273a93 --- runtime/quick/inline_method_analyser.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/runtime/quick/inline_method_analyser.cc b/runtime/quick/inline_method_analyser.cc index 9cf4b1658..1c404ff14 100644 --- a/runtime/quick/inline_method_analyser.cc +++ b/runtime/quick/inline_method_analyser.cc @@ -134,7 +134,10 @@ bool InlineMethodAnalyser::AnalyseMethodCode(verifier::MethodVerifier* verifier, bool InlineMethodAnalyser::IsSyntheticAccessor(MethodReference ref) { const DexFile::MethodId& method_id = ref.dex_file->GetMethodId(ref.dex_method_index); const char* method_name = ref.dex_file->GetMethodName(method_id); - return strncmp(method_name, "access$", strlen("access$")) == 0; + // javac names synthetic accessors "access$nnn", + // jack names them "-getN", "-putN", "-wrapN". + return strncmp(method_name, "access$", strlen("access$")) == 0 || + strncmp(method_name, "-", strlen("-")) == 0; } bool InlineMethodAnalyser::AnalyseReturnMethod(const DexFile::CodeItem* code_item, -- 2.11.0