Allocate small arg arrays on the stack

Create a helper class to either keep in a short local array or allocate
the arg array. This benefits JNI methods with a small number of
arguments by avoiding an allocation.

Change-Id: I88a9ff6b7ff88b16021813650e9425697e934353
diff --git a/src/jni_internal.h b/src/jni_internal.h
index f21b36a..79a7af9 100644
--- a/src/jni_internal.h
+++ b/src/jni_internal.h
@@ -75,7 +75,7 @@
   return reinterpret_cast<jmethodID>(method);
 }
 
-size_t NumArgArrayBytes(const char* shorty);
+size_t NumArgArrayBytes(const char* shorty, uint32_t shorty_len);
 JValue InvokeWithJValues(JNIEnv* env, jobject obj, jmethodID mid, jvalue* args);
 JValue InvokeWithJValues(Thread* self, Object* receiver, Method* m, JValue* args);