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 d9d1e31..78ef7ac 100644
--- a/runtime/gc/heap.cc
+++ b/runtime/gc/heap.cc
@@ -1210,6 +1210,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));