diff options
author | 2015-05-06 14:09:04 +0100 | |
---|---|---|
committer | 2015-05-06 15:40:50 +0100 | |
commit | d5f1005da7599f149b1332402c9791ef2acb8c42 (patch) | |
tree | 7e6015d8aa0c5b5c0b69c77f93c4d08220c34119 /runtime/quick/inline_method_analyser.cc | |
parent | 9cce14f56a59bbce52254ffc50ea6817fd94d8dd (diff) |
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
Change-Id: I67990a6c2ef1d25dafe460ef70143a113bb5b7da
Diffstat (limited to 'runtime/quick/inline_method_analyser.cc')
-rw-r--r-- | runtime/quick/inline_method_analyser.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/runtime/quick/inline_method_analyser.cc b/runtime/quick/inline_method_analyser.cc index 9cf4b16582..1c404ff141 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, |