--- a/hotspot/src/share/vm/prims/jni.cpp Thu Feb 18 03:47:47 2016 +0100
+++ b/hotspot/src/share/vm/prims/jni.cpp Thu Feb 18 03:51:44 2016 +0000
@@ -930,13 +930,7 @@
_arguments->push_oop(Handle((oop *)l, false)); }
inline void set_ap(va_list rap) {
-#ifdef va_copy
va_copy(_ap, rap);
-#elif defined (__va_copy)
- __va_copy(_ap, rap);
-#else
- _ap = rap;
-#endif
}
public:
--- a/hotspot/src/share/vm/utilities/globalDefinitions_visCPP.hpp Thu Feb 18 03:47:47 2016 +0100
+++ b/hotspot/src/share/vm/utilities/globalDefinitions_visCPP.hpp Thu Feb 18 03:51:44 2016 +0000
@@ -174,6 +174,8 @@
#if _MSC_VER < 1800
// Visual Studio 2013 introduced strtoull(); before, one has to use _strtoui64() instead.
#define strtoull _strtoui64
+// Visual Studio prior to 2013 had no va_copy, but could safely copy va_list by assignement
+#define va_copy(dest, src) dest = src
// Fixes some wrong warnings about 'this' : used in base member initializer list
#pragma warning( disable : 4355 )
#endif