From f4f3843150bb2152bcc583c1896f45a313d5f6a4 Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Wed, 3 Sep 2014 11:21:08 -0700 Subject: [PATCH] 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 --- runtime/gc/heap.cc | 2 ++ 1 file changed, 2 insertions(+) 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)); -- 2.11.0