Method* for upcalls should be null.

In order to terminating stack crawls through managed frames the Method*
should be null.

Change-Id: I03562be3b591c8b1978319126347eb97fec928de
diff --git a/src/jni_internal_arm.cc b/src/jni_internal_arm.cc
index e126b6e..0d19c1c 100644
--- a/src/jni_internal_arm.cc
+++ b/src/jni_internal_arm.cc
@@ -56,6 +56,10 @@
     reg_bytes = method->NumArgArrayBytes();
   }
 
+  // Method* at bottom of frame is null thereby terminating managed stack crawls
+  __ LoadImmediate(IP, 0, AL);
+  __ StoreToOffset(kStoreWord, IP, SP, 0);
+
   // Copy values by stack
   for(size_t off = 0; off < stack_bytes; off += kPointerSize) {
     // we're displaced off of r3 by bytes that'll go in registers
diff --git a/src/jni_internal_x86.cc b/src/jni_internal_x86.cc
index 05542b7..ad30acc 100644
--- a/src/jni_internal_x86.cc
+++ b/src/jni_internal_x86.cc
@@ -50,7 +50,8 @@
   if (!method->IsStatic()) {
     __ pushl(EAX);
   }
-  __ pushl(EDI);  // Method* at bottom of fake managed frame
+  // Push 0 as NULL Method* thereby terminating managed stack crawls
+  __ pushl(Immediate(0));
   __ call(Address(EDI, method->GetCodeOffset()));  // Call code off of method
 
   // pop arguments and padding up to saved EDI