void BuildArgArrayFromVarArgs(const ScopedObjectAccessAlreadyRunnable& soa,
ObjPtr<mirror::Object> receiver,
REQUIRES_SHARED(Locks::mutator_lock_) {
// Set receiver if non-null (method is not static)
if (receiver != nullptr) {
for (size_t i = 1; i < shorty_len_; ++i) {
Append(va_arg(ap, jint));
AppendFloat(va_arg(ap, jdouble));
Append(soa.Decode<mirror::Object>(va_arg(ap, jobject)));
AppendDouble(va_arg(ap, jdouble));
AppendWide(va_arg(ap, jlong));