ART: Refactor Agent into Agent and AgentSpec
Separate configuration/loading and runtime state.
Test: m test-art-host
Change-Id: I69bb91e13ef10b9e1ce313f45b0b809b913d8e10
diff --git a/runtime/java_vm_ext.cc b/runtime/java_vm_ext.cc
index 104fb66..e159436 100644
--- a/runtime/java_vm_ext.cc
+++ b/runtime/java_vm_ext.cc
@@ -1052,17 +1052,17 @@
static void* FindCodeForNativeMethodInAgents(ArtMethod* m) REQUIRES_SHARED(Locks::mutator_lock_) {
std::string jni_short_name(m->JniShortName());
std::string jni_long_name(m->JniLongName());
- for (const ti::Agent& agent : Runtime::Current()->GetAgents()) {
- void* fn = agent.FindSymbol(jni_short_name);
+ for (const std::unique_ptr<ti::Agent>& agent : Runtime::Current()->GetAgents()) {
+ void* fn = agent->FindSymbol(jni_short_name);
if (fn != nullptr) {
VLOG(jni) << "Found implementation for " << m->PrettyMethod()
- << " (symbol: " << jni_short_name << ") in " << agent;
+ << " (symbol: " << jni_short_name << ") in " << *agent;
return fn;
}
- fn = agent.FindSymbol(jni_long_name);
+ fn = agent->FindSymbol(jni_long_name);
if (fn != nullptr) {
VLOG(jni) << "Found implementation for " << m->PrettyMethod()
- << " (symbol: " << jni_long_name << ") in " << agent;
+ << " (symbol: " << jni_long_name << ") in " << *agent;
return fn;
}
}