Implement ReferenceType.Instances.
Change-Id: I6a72fc4c748e7041fedcb615eca2b86b1f28bb63
diff --git a/src/debugger.cc b/src/debugger.cc
index 44785ba..f52c42a 100644
--- a/src/debugger.cc
+++ b/src/debugger.cc
@@ -759,6 +759,22 @@
return JDWP::ERR_NONE;
}
+JDWP::JdwpError Dbg::GetInstances(JDWP::RefTypeId class_id, int32_t max_count, std::vector<JDWP::ObjectId>& instances)
+ SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) {
+ JDWP::JdwpError status;
+ Class* c = DecodeClass(class_id, status);
+ if (c == NULL) {
+ return status;
+ }
+
+ std::vector<Object*> raw_instances;
+ Runtime::Current()->GetHeap()->GetInstances(c, max_count, raw_instances);
+ for (size_t i = 0; i < raw_instances.size(); ++i) {
+ instances.push_back(gRegistry->Add(raw_instances[i]));
+ }
+ return JDWP::ERR_NONE;
+}
+
JDWP::JdwpError Dbg::GetReflectedType(JDWP::RefTypeId class_id, JDWP::ExpandBuf* pReply) {
JDWP::JdwpError status;
Class* c = DecodeClass(class_id, status);