X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7fc0bd1c0541a819d51354a4a86f126dbb8ad08f..5e29f97a3c55598b9310a4643f9073b6b926672c:/src/jpeg/jmorecfg.h?ds=sidebyside diff --git a/src/jpeg/jmorecfg.h b/src/jpeg/jmorecfg.h index 51b8ca1bc4..29b33d0235 100644 --- a/src/jpeg/jmorecfg.h +++ b/src/jpeg/jmorecfg.h @@ -174,7 +174,7 @@ typedef short INT16; #elif (_MSC_VER >= 1200) || (__BORLANDC__ >= 0x550) \ || wxCHECK_W32API_VERSION( 0, 5 ) \ || ((defined(__MINGW32__) || defined(__CYGWIN__)) \ - && ((__GNUC__>2) || ((__GNUC__==2) && (__GNUC_MINOR__>95)))) \ + && ((__GNUC__>2) || ((__GNUC__==2) && (__GNUC_MINOR__>=95)))) \ || (defined(__MWERKS__) && defined(__WXMSW__)) /* INT32 is defined in windows.h for these compilers */ @@ -208,25 +208,29 @@ typedef unsigned int JDIMENSION; * or code profilers that require it. */ -#if defined(__VISAGECPP__) /* need this for /common/imagjpeg.obj but not loclly */ -/* a function called through method pointers: */ -#define METHODDEF(type) static type _Optlink -/* a function used only in its module: */ -#define LOCAL(type) static type _Optlink -/* a function referenced thru EXTERNs: */ -#define GLOBAL(type) type -/* a reference to a GLOBAL function: */ -#define EXTERN(type) extern type _Optlink -#else +#if defined(__VISAGECPP__) +#define JPEG_CALLING_CONV _Optlink +#else /* !Visual Age C++ */ +#define JPEG_CALLING_CONV +#endif + +/* We can't declare a static function as extern "C" as we need to do in C++ + * programs, so suppress static in METHODDEF when using C++. + */ +#if defined(__cplusplus) +#define JPEG_METHOD_LINKAGE +#else /* !__cplusplus */ +#define JPEG_METHOD_LINKAGE static +#endif + /* a function called through method pointers: */ -#define METHODDEF(type) static type +#define METHODDEF(type) JPEG_METHOD_LINKAGE type JPEG_CALLING_CONV /* a function used only in its module: */ -#define LOCAL(type) static type +#define LOCAL(type) static type JPEG_CALLING_CONV /* a function referenced thru EXTERNs: */ #define GLOBAL(type) type /* a reference to a GLOBAL function: */ -#define EXTERN(type) extern type -#endif +#define EXTERN(type) extern type JPEG_CALLING_CONV /* This macro is used to declare a "method", that is, a function pointer. * We want to supply prototype parameters if the compiler can cope.