Lines Matching refs:Matcher
40 class Matcher { class
43 typedef bool MatchFn(Matcher* matcher);
50 static bool Mark(Matcher* matcher);
52 template <bool (Matcher::*Fn)()>
53 static bool Required(Matcher* matcher);
55 template <bool (Matcher::*Fn)()>
56 static bool Repeated(Matcher* matcher); // On match, returns to the mark.
65 explicit Matcher(const DexFile::CodeItem* code_item) in Matcher() function in art::__anon8023c6a50111::Matcher
80 bool Matcher::Match(const DexFile::CodeItem* code_item, MatchFn* const (&pattern)[size]) { in Match()
84 bool Matcher::Mark(Matcher* matcher) { in Mark()
90 template <bool (Matcher::*Fn)()>
91 bool Matcher::Required(Matcher* matcher) { in Required()
100 template <bool (Matcher::*Fn)()>
101 bool Matcher::Repeated(Matcher* matcher) { in Repeated()
113 bool Matcher::Opcode() { in Opcode()
118 bool Matcher::Const0() { in Const0()
124 bool Matcher::IPutOnThis() { in IPutOnThis()
130 bool Matcher::DoMatch(const DexFile::CodeItem* code_item, MatchFn* const* pattern, size_t size) { in DoMatch()
131 Matcher matcher(code_item); in DoMatch()
280 static Matcher::MatchFn* const kConstructorPattern[] = { in DoAnalyseConstructor()
281 &Matcher::Mark, in DoAnalyseConstructor()
282 &Matcher::Repeated<&Matcher::Const0>, in DoAnalyseConstructor()
283 &Matcher::Required<&Matcher::Opcode<Instruction::INVOKE_DIRECT>>, in DoAnalyseConstructor()
284 &Matcher::Mark, in DoAnalyseConstructor()
285 &Matcher::Repeated<&Matcher::Const0>, in DoAnalyseConstructor()
286 &Matcher::Repeated<&Matcher::IPutOnThis>, in DoAnalyseConstructor()
287 &Matcher::Required<&Matcher::Opcode<Instruction::RETURN_VOID>>, in DoAnalyseConstructor()
297 !Matcher::Match(code_item, kConstructorPattern)) { in DoAnalyseConstructor()