Windows: Handle missing va_copy macro in MSVC
This commit is contained in:
parent
f8d5028de3
commit
94bd43ce19
|
@ -71,7 +71,11 @@ static int do_vsnprintf(char* buffer, size_t buffer_size, const char *format, va
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
return vsnprintf_s(buffer, buffer_size, _TRUNCATE, format, ap);
|
return vsnprintf_s(buffer, buffer_size, _TRUNCATE, format, ap);
|
||||||
#else
|
#else
|
||||||
return vsnprintf(buffer, buffer_size, format, ap);
|
va_list cp_ap;
|
||||||
|
va_copy(cp_ap, ap);
|
||||||
|
int res = vsnprintf(buffer, buffer_size, format, cp_ap);
|
||||||
|
va_end(cp_ap);
|
||||||
|
return res;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,11 +84,9 @@ static jstring sprintfJavaString(JNIEnv *env, const char *format, va_list ap) {
|
||||||
char *buffer;
|
char *buffer;
|
||||||
jstring str;
|
jstring str;
|
||||||
int str_size;
|
int str_size;
|
||||||
va_list cp_ap;
|
|
||||||
buffer = (char *)malloc(sizeof(char)*buffer_size);
|
buffer = (char *)malloc(sizeof(char)*buffer_size);
|
||||||
if (buffer == NULL)
|
if (buffer == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
va_copy(cp_ap, ap);
|
|
||||||
str_size = do_vsnprintf(buffer, buffer_size, format, ap);
|
str_size = do_vsnprintf(buffer, buffer_size, format, ap);
|
||||||
if (str_size > buffer_size) {
|
if (str_size > buffer_size) {
|
||||||
free(buffer);
|
free(buffer);
|
||||||
|
@ -92,9 +94,8 @@ static jstring sprintfJavaString(JNIEnv *env, const char *format, va_list ap) {
|
||||||
buffer = (char *)malloc(sizeof(char)*buffer_size);
|
buffer = (char *)malloc(sizeof(char)*buffer_size);
|
||||||
if (buffer == NULL)
|
if (buffer == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
int blah = do_vsnprintf(buffer, buffer_size, format, cp_ap);
|
do_vsnprintf(buffer, buffer_size, format, ap);
|
||||||
}
|
}
|
||||||
va_end(cp_ap);
|
|
||||||
str = (*env)->NewStringUTF(env, buffer);
|
str = (*env)->NewStringUTF(env, buffer);
|
||||||
free(buffer);
|
free(buffer);
|
||||||
return str;
|
return str;
|
||||||
|
|
Loading…
Reference in New Issue