Add exception check to AllocateInternalWithGc

Trying to figure out if the pending exception comes before or during
AllocateInternalWithGc.

Bug: 17164348

Change-Id: Id46d82bfc0f84d16e5ffdafe41658aee4cc2c702
diff --git a/runtime/gc/heap.cc b/runtime/gc/heap.cc
index ce914e5..7e7b859 100644
--- a/runtime/gc/heap.cc
+++ b/runtime/gc/heap.cc
@@ -1225,6 +1225,8 @@
                                              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));