From: Mathieu Chartier Date: Wed, 3 Sep 2014 18:21:08 +0000 (-0700) Subject: Add exception check to AllocateInternalWithGc X-Git-Tag: android-x86-7.1-r1~889^2~3181^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=f4f3843150bb2152bcc583c1896f45a313d5f6a4;p=android-x86%2Fart.git Add exception check to AllocateInternalWithGc Trying to figure out if the pending exception comes before or during AllocateInternalWithGc. Bug: 17164348 (cherry picked from commit 98d43cb0da3c34d1888d1e31d953c2940fd0f897) Change-Id: I2aac4b67f0c3f1c0fe3c9dc321316f76494c4074 --- diff --git a/runtime/gc/heap.cc b/runtime/gc/heap.cc index d9d1e3124..78ef7ac47 100644 --- a/runtime/gc/heap.cc +++ b/runtime/gc/heap.cc @@ -1210,6 +1210,8 @@ mirror::Object* Heap::AllocateInternalWithGc(Thread* self, AllocatorType allocat size_t* usable_size, mirror::Class** klass) { bool was_default_allocator = allocator == GetCurrentAllocator(); + // Make sure there is no pending exception since we may need to throw an OOME. + self->AssertNoPendingException(); DCHECK(klass != nullptr); StackHandleScope<1> hs(self); HandleWrapper h(hs.NewHandleWrapper(klass));