diff options
Diffstat (limited to 'libjava/java')
-rw-r--r-- | libjava/java/lang/natClass.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libjava/java/lang/natClass.cc b/libjava/java/lang/natClass.cc index ec4a18f..b5ad91f 100644 --- a/libjava/java/lang/natClass.cc +++ b/libjava/java/lang/natClass.cc @@ -661,7 +661,13 @@ java::lang::Class::newInstance (void) throw new java::lang::InstantiationException (getName()); jobject r = _Jv_AllocObject (this); + /* Class constructors/destructors have __thiscall calling + convention for 32-bit native Windows ABI. */ +#if defined (__MINGW32__) && defined (__i386__) + ((void (__thiscall *) (jobject)) meth->ncode) (r); +#else ((void (*) (jobject)) meth->ncode) (r); +#endif return r; } |