From efabc3f1c4cff9158924d4c3721470d82ea89ec9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Christian=20Str=C3=B8mme?=
 <christian.stromme@theqtcompany.com>
Date: Wed, 5 Nov 2014 20:56:08 +0100
Subject: [PATCH] Fix use of va_list in QAndroidJniObject

va_list functions where update to work on x86 where va_list is defined
as char*.

Change-Id: If1286a36d766b8536ca9a83ca21791d30b7b307c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
---
 src/androidextras/jni/qandroidjniobject.cpp | 66 +++++++++++----------
 1 file changed, 34 insertions(+), 32 deletions(-)

diff --git a/src/androidextras/jni/qandroidjniobject.cpp b/src/androidextras/jni/qandroidjniobject.cpp
index cadedfe..21c2c73 100644
--- a/src/androidextras/jni/qandroidjniobject.cpp
+++ b/src/androidextras/jni/qandroidjniobject.cpp
@@ -716,16 +716,18 @@ QT_BEGIN_NAMESPACE
 QAndroidJniObject::QAndroidJniObject(const char *className, const char *sig, ...)
 {
     va_list args;
+    QJNIObjectPrivate::QVaListPrivate vargs = { args };
     va_start(args, sig);
-    d = QSharedPointer<QJNIObjectPrivate>(new QJNIObjectPrivate(className, sig, args));
+    d = QSharedPointer<QJNIObjectPrivate>(new QJNIObjectPrivate(className, sig, vargs));
     va_end(args);
 }
 
 QAndroidJniObject::QAndroidJniObject(jclass clazz, const char *sig, ...)
 {
     va_list args;
+    QJNIObjectPrivate::QVaListPrivate vargs = { args };
     va_start(args, sig);
-    d = QSharedPointer<QJNIObjectPrivate>(new QJNIObjectPrivate(clazz, sig, args));
+    d = QSharedPointer<QJNIObjectPrivate>(new QJNIObjectPrivate(clazz, sig, vargs));
     va_end(args);
 }
 
@@ -757,7 +759,7 @@ void QAndroidJniObject::callMethod<void>(const char *methodName, const char *sig
 {
     va_list args;
     va_start(args, sig);
-    d->callMethod<void>(methodName, sig, args);
+    d->callMethodV<void>(methodName, sig, args);
     va_end(args);
 }
 
@@ -766,7 +768,7 @@ jboolean QAndroidJniObject::callMethod<jboolean>(const char *methodName, const c
 {
     va_list args;
     va_start(args, sig);
-    jboolean res = d->callMethod<jboolean>(methodName, sig, args);
+    jboolean res = d->callMethodV<jboolean>(methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -776,7 +778,7 @@ jbyte QAndroidJniObject::callMethod<jbyte>(const char *methodName, const char *s
 {
     va_list args;
     va_start(args, sig);
-    jbyte res = d->callMethod<jbyte>(methodName, sig, args);
+    jbyte res = d->callMethodV<jbyte>(methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -786,7 +788,7 @@ jchar QAndroidJniObject::callMethod<jchar>(const char *methodName, const char *s
 {
     va_list args;
     va_start(args, sig);
-    jchar res = d->callMethod<jchar>(methodName, sig, args);
+    jchar res = d->callMethodV<jchar>(methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -796,7 +798,7 @@ jshort QAndroidJniObject::callMethod<jshort>(const char *methodName, const char
 {
     va_list args;
     va_start(args, sig);
-    jshort res = d->callMethod<jshort>(methodName, sig, args);
+    jshort res = d->callMethodV<jshort>(methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -806,7 +808,7 @@ jint QAndroidJniObject::callMethod<jint>(const char *methodName, const char *sig
 {
     va_list args;
     va_start(args, sig);
-    jint res = d->callMethod<jint>(methodName, sig, args);
+    jint res = d->callMethodV<jint>(methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -816,7 +818,7 @@ jlong QAndroidJniObject::callMethod<jlong>(const char *methodName, const char *s
 {
     va_list args;
     va_start(args, sig);
-    jlong res = d->callMethod<jlong>(methodName, sig, args);
+    jlong res = d->callMethodV<jlong>(methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -826,7 +828,7 @@ jfloat QAndroidJniObject::callMethod<jfloat>(const char *methodName, const char
 {
     va_list args;
     va_start(args, sig);
-    jfloat res = d->callMethod<jfloat>(methodName, sig, args);
+    jfloat res = d->callMethodV<jfloat>(methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -836,7 +838,7 @@ jdouble QAndroidJniObject::callMethod<jdouble>(const char *methodName, const cha
 {
     va_list args;
     va_start(args, sig);
-    jdouble res = d->callMethod<jdouble>(methodName, sig, args);
+    jdouble res = d->callMethodV<jdouble>(methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -847,7 +849,7 @@ QAndroidJniObject QAndroidJniObject::callObjectMethod(const char *methodName,
 {
     va_list args;
     va_start(args, sig);
-    QJNIObjectPrivate res = d->callObjectMethod(methodName, sig, args);
+    QJNIObjectPrivate res = d->callObjectMethodV(methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -962,7 +964,7 @@ void QAndroidJniObject::callStaticMethod<void>(const char *className,
 {
     va_list args;
     va_start(args, sig);
-    QJNIObjectPrivate::callStaticMethod<void>(className, methodName, sig, args);
+    QJNIObjectPrivate::callStaticMethodV<void>(className, methodName, sig, args);
     va_end(args);
 }
 
@@ -974,7 +976,7 @@ void QAndroidJniObject::callStaticMethod<void>(jclass clazz,
 {
     va_list args;
     va_start(args, sig);
-    QJNIObjectPrivate::callStaticMethod<void>(clazz, methodName, sig, args);
+    QJNIObjectPrivate::callStaticMethodV<void>(clazz, methodName, sig, args);
     va_end(args);
 }
 
@@ -986,7 +988,7 @@ jboolean QAndroidJniObject::callStaticMethod<jboolean>(const char *className,
 {
     va_list args;
     va_start(args, sig);
-    jboolean res = QJNIObjectPrivate::callStaticMethod<jboolean>(className, methodName, sig, args);
+    jboolean res = QJNIObjectPrivate::callStaticMethodV<jboolean>(className, methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -999,7 +1001,7 @@ jboolean QAndroidJniObject::callStaticMethod<jboolean>(jclass clazz,
 {
     va_list args;
     va_start(args, sig);
-    jboolean res = QJNIObjectPrivate::callStaticMethod<jboolean>(clazz, methodName, sig, args);
+    jboolean res = QJNIObjectPrivate::callStaticMethodV<jboolean>(clazz, methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -1012,7 +1014,7 @@ jbyte QAndroidJniObject::callStaticMethod<jbyte>(const char *className,
 {
     va_list args;
     va_start(args, sig);
-    jbyte res = QJNIObjectPrivate::callStaticMethod<jbyte>(className, methodName, sig, args);
+    jbyte res = QJNIObjectPrivate::callStaticMethodV<jbyte>(className, methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -1025,7 +1027,7 @@ jbyte QAndroidJniObject::callStaticMethod<jbyte>(jclass clazz,
 {
     va_list args;
     va_start(args, sig);
-    jbyte res = QJNIObjectPrivate::callStaticMethod<jbyte>(clazz, methodName, sig, args);
+    jbyte res = QJNIObjectPrivate::callStaticMethodV<jbyte>(clazz, methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -1038,7 +1040,7 @@ jchar QAndroidJniObject::callStaticMethod<jchar>(const char *className,
 {
     va_list args;
     va_start(args, sig);
-    jchar res = QJNIObjectPrivate::callStaticMethod<jchar>(className, methodName, sig, args);
+    jchar res = QJNIObjectPrivate::callStaticMethodV<jchar>(className, methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -1051,7 +1053,7 @@ jchar QAndroidJniObject::callStaticMethod<jchar>(jclass clazz,
 {
     va_list args;
     va_start(args, sig);
-    jchar res = QJNIObjectPrivate::callStaticMethod<jchar>(clazz, methodName, sig, args);
+    jchar res = QJNIObjectPrivate::callStaticMethodV<jchar>(clazz, methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -1065,7 +1067,7 @@ jshort QAndroidJniObject::callStaticMethod<jshort>(const char *className,
 {
     va_list args;
     va_start(args, sig);
-    jshort res = QJNIObjectPrivate::callStaticMethod<jshort>(className, methodName, sig, args);
+    jshort res = QJNIObjectPrivate::callStaticMethodV<jshort>(className, methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -1078,7 +1080,7 @@ jshort QAndroidJniObject::callStaticMethod<jshort>(jclass clazz,
 {
     va_list args;
     va_start(args, sig);
-    jshort res = QJNIObjectPrivate::callStaticMethod<jshort>(clazz, methodName, sig, args);
+    jshort res = QJNIObjectPrivate::callStaticMethodV<jshort>(clazz, methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -1091,7 +1093,7 @@ jint QAndroidJniObject::callStaticMethod<jint>(const char *className,
 {
     va_list args;
     va_start(args, sig);
-    jint res = QJNIObjectPrivate::callStaticMethod<jint>(className, methodName, sig, args);
+    jint res = QJNIObjectPrivate::callStaticMethodV<jint>(className, methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -1104,7 +1106,7 @@ jint QAndroidJniObject::callStaticMethod<jint>(jclass clazz,
 {
     va_list args;
     va_start(args, sig);
-    jint res = QJNIObjectPrivate::callStaticMethod<jint>(clazz, methodName, sig, args);
+    jint res = QJNIObjectPrivate::callStaticMethodV<jint>(clazz, methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -1117,7 +1119,7 @@ jlong QAndroidJniObject::callStaticMethod<jlong>(const char *className,
 {
     va_list args;
     va_start(args, sig);
-    jlong res = QJNIObjectPrivate::callStaticMethod<jlong>(className, methodName, sig, args);
+    jlong res = QJNIObjectPrivate::callStaticMethodV<jlong>(className, methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -1130,7 +1132,7 @@ jlong QAndroidJniObject::callStaticMethod<jlong>(jclass clazz,
 {
     va_list args;
     va_start(args, sig);
-    jlong res = QJNIObjectPrivate::callStaticMethod<jlong>(clazz, methodName, sig, args);
+    jlong res = QJNIObjectPrivate::callStaticMethodV<jlong>(clazz, methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -1143,7 +1145,7 @@ jfloat QAndroidJniObject::callStaticMethod<jfloat>(const char *className,
 {
     va_list args;
     va_start(args, sig);
-    jfloat res = QJNIObjectPrivate::callStaticMethod<jfloat>(className, methodName, sig, args);
+    jfloat res = QJNIObjectPrivate::callStaticMethodV<jfloat>(className, methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -1156,7 +1158,7 @@ jfloat QAndroidJniObject::callStaticMethod<jfloat>(jclass clazz,
 {
     va_list args;
     va_start(args, sig);
-    jfloat res = QJNIObjectPrivate::callStaticMethod<jfloat>(clazz, methodName, sig, args);
+    jfloat res = QJNIObjectPrivate::callStaticMethodV<jfloat>(clazz, methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -1169,7 +1171,7 @@ jdouble QAndroidJniObject::callStaticMethod<jdouble>(const char *className,
 {
     va_list args;
     va_start(args, sig);
-    jdouble res = QJNIObjectPrivate::callStaticMethod<jdouble>(className, methodName, sig, args);
+    jdouble res = QJNIObjectPrivate::callStaticMethodV<jdouble>(className, methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -1182,7 +1184,7 @@ jdouble QAndroidJniObject::callStaticMethod<jdouble>(jclass clazz,
 {
     va_list args;
     va_start(args, sig);
-    jdouble res = QJNIObjectPrivate::callStaticMethod<jdouble>(clazz, methodName, sig, args);
+    jdouble res = QJNIObjectPrivate::callStaticMethodV<jdouble>(clazz, methodName, sig, args);
     va_end(args);
     return res;
 }
@@ -1194,7 +1196,7 @@ QAndroidJniObject QAndroidJniObject::callStaticObjectMethod(const char *classNam
 {
     va_list args;
     va_start(args, sig);
-    QJNIObjectPrivate res = QJNIObjectPrivate::callStaticObjectMethod(className,
+    QJNIObjectPrivate res = QJNIObjectPrivate::callStaticObjectMethodV(className,
                                                                       methodName,
                                                                       sig,
                                                                       args);
@@ -1209,7 +1211,7 @@ QAndroidJniObject QAndroidJniObject::callStaticObjectMethod(jclass clazz,
 {
     va_list args;
     va_start(args, sig);
-    QJNIObjectPrivate res = QJNIObjectPrivate::callStaticObjectMethod(clazz, methodName, sig, args);
+    QJNIObjectPrivate res = QJNIObjectPrivate::callStaticObjectMethodV(clazz, methodName, sig, args);
     va_end(args);
     return res;
 }
-- 
GitLab