summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mathieu Chartier <mathieuc@google.com> 2014-09-03 11:21:08 -0700
committer Mathieu Chartier <mathieuc@google.com> 2014-09-03 19:29:27 -0700
commitf4f3843150bb2152bcc583c1896f45a313d5f6a4 (patch)
treeb07eb17f7c1f9ce63e6c22d417aee0bf6dc24bdc
parenta07557ccece64fa7084bb01b9d26957bd0977c10 (diff)
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
-rw-r--r--runtime/gc/heap.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/runtime/gc/heap.cc b/runtime/gc/heap.cc
index d9d1e31246..78ef7ac474 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<mirror::Class> h(hs.NewHandleWrapper(klass));