• Home
  • Raw
  • Download

Lines Matching full:method

38         for (const auto &method : klass->GetVTable()) {  in Update()  local
39 SetHasSingleImplementation(method, true); in Update()
46 PandaSet<Method *> invalidated_methods; in Update()
49 auto method = klass->GetVTable()[i]; in Update() local
51 if (method == parent_method || method->IsDefaultInterfaceMethod()) { in Update()
59 UpdateMethod(method); in Update()
63 auto method = klass->GetVTable()[i]; in Update() local
64 if (method->IsDefaultInterfaceMethod()) { in Update()
67 UpdateMethod(method); in Update()
73 bool ClassHierarchyAnalysis::HasSingleImplementation(Method *method) in HasSingleImplementation() argument
76 return method->HasSingleImplementation(); in HasSingleImplementation()
79 void ClassHierarchyAnalysis::SetHasSingleImplementation(Method *method, bool single_implementation) in SetHasSingleImplementation() argument
82 method->SetHasSingleImplementation(single_implementation); in SetHasSingleImplementation()
85 void ClassHierarchyAnalysis::UpdateMethod(Method *method) in UpdateMethod() argument
87 …// TODO(msherstennikov): Currently panda is allowed to execute abstract method, thus we cannot pro… in UpdateMethod()
88 // implementation property of the non-abstract method to the all overriden abstract methods. in UpdateMethod()
89 SetHasSingleImplementation(method, !method->IsAbstract()); in UpdateMethod()
92 void ClassHierarchyAnalysis::InvalidateMethods(const PandaSet<Method *> &methods) in InvalidateMethods()
94 PandaSet<Method *> dependent_methods; in InvalidateMethods()
98 for (auto method : methods) { in InvalidateMethods() local
99 InvalidateMethod(method, &dependent_methods); in InvalidateMethods()
110 void ClassHierarchyAnalysis::InvalidateMethod(Method *method, PandaSet<Method *> *dependent_methods… in InvalidateMethod() argument
112 if (!method->HasSingleImplementation()) { in InvalidateMethod()
116 method->SetHasSingleImplementation(false); in InvalidateMethod()
118 LOG(DEBUG, CLASS_LINKER) << "[CHA] Invalidate method " << method->GetFullName(); in InvalidateMethod()
120 auto it = dependency_map_.find(method); in InvalidateMethod()
129 dependency_map_.erase(method); in InvalidateMethod()
132 void ClassHierarchyAnalysis::AddDependency(Method *callee, Method *caller) in AddDependency()
137 … Other thread can remove single implementation of the callee method while we compile caller method. in AddDependency()