From 56d5e50a7519495777f3223e21b9d73d8ceaa6ad Mon Sep 17 00:00:00 2001 From: Sebastien Hertz Date: Tue, 3 Nov 2015 17:38:35 +0100 Subject: [PATCH] JDWP: fix java.lang.String creation Bug: 25439464 Change-Id: I56f11ed942585e8110dbbba1178cf11ec76e032f --- runtime/debugger.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/runtime/debugger.cc b/runtime/debugger.cc index 7117be9a5..e523fbb10 100644 --- a/runtime/debugger.cc +++ b/runtime/debugger.cc @@ -1231,7 +1231,15 @@ JDWP::JdwpError Dbg::CreateObject(JDWP::RefTypeId class_id, JDWP::ObjectId* new_ return error; } Thread* self = Thread::Current(); - mirror::Object* new_object = c->AllocObject(self); + mirror::Object* new_object; + if (c->IsStringClass()) { + // Special case for java.lang.String. + gc::AllocatorType allocator_type = Runtime::Current()->GetHeap()->GetCurrentAllocator(); + mirror::SetStringCountVisitor visitor(0); + new_object = mirror::String::Alloc(self, 0, allocator_type, visitor); + } else { + new_object = c->AllocObject(self); + } if (new_object == nullptr) { DCHECK(self->IsExceptionPending()); self->ClearException(); -- 2.11.0