]> git.saurik.com Git - wxWidgets.git/blobdiff - src/jpeg/jmorecfg.h
Added shared private declarations header privx.h, utils.cpp now shared
[wxWidgets.git] / src / jpeg / jmorecfg.h
index 51b8ca1bc45b53a6c6a9cdc7f007c9a77a2a9705..29b33d02354c16dcffac024fd5aa491a75dd400d 100644 (file)
@@ -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.