fixes for METHODDEF definition
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14032 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -53,15 +53,26 @@ extern "C"
|
|||||||
#include <setjmp.h>
|
#include <setjmp.h>
|
||||||
|
|
||||||
#ifdef __SALFORDC__
|
#ifdef __SALFORDC__
|
||||||
#ifdef FAR
|
|
||||||
#undef FAR
|
#undef FAR
|
||||||
#endif
|
#endif
|
||||||
#endif
|
|
||||||
|
|
||||||
// we can't use METHODDEF here as it includes static yet the functions must be
|
// ----------------------------------------------------------------------------
|
||||||
// extern "C" and these can't be used together!
|
// types
|
||||||
#undef METHODDEF
|
// ----------------------------------------------------------------------------
|
||||||
#define METHODDEF(type) extern "C" type wxC_CALLING_CONV
|
|
||||||
|
// the standard definition of METHODDEF(type) from jmorecfg.h is "static type"
|
||||||
|
// which means that we can't declare the method functions as extern "C" - the
|
||||||
|
// compiler (rightfully) complains about the multiple storage classes in
|
||||||
|
// declaration
|
||||||
|
//
|
||||||
|
// so we only add extern "C" when using our own, modified, jmorecfg.h - and use
|
||||||
|
// whatever we have in the system headers if this is what we use hoping that it
|
||||||
|
// should be ok (can't do anything else)
|
||||||
|
#ifdef JPEG_METHOD_LINKAGE
|
||||||
|
#define CPP_METHODDEF(type) extern "C" METHODDEF(type)
|
||||||
|
#else // not using our jmorecfg.h header
|
||||||
|
#define CPP_METHODDEF(type) METHODDEF(type)
|
||||||
|
#endif
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// wxJPEGHandler
|
// wxJPEGHandler
|
||||||
@@ -84,11 +95,11 @@ typedef struct {
|
|||||||
|
|
||||||
typedef my_source_mgr * my_src_ptr;
|
typedef my_source_mgr * my_src_ptr;
|
||||||
|
|
||||||
METHODDEF(void) my_init_source ( j_decompress_ptr WXUNUSED(cinfo) )
|
CPP_METHODDEF(void) my_init_source ( j_decompress_ptr WXUNUSED(cinfo) )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
METHODDEF(boolean) my_fill_input_buffer ( j_decompress_ptr cinfo )
|
CPP_METHODDEF(boolean) my_fill_input_buffer ( j_decompress_ptr cinfo )
|
||||||
{
|
{
|
||||||
my_src_ptr src = (my_src_ptr) cinfo->src;
|
my_src_ptr src = (my_src_ptr) cinfo->src;
|
||||||
|
|
||||||
@@ -105,7 +116,7 @@ METHODDEF(boolean) my_fill_input_buffer ( j_decompress_ptr cinfo )
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHODDEF(void) my_skip_input_data ( j_decompress_ptr cinfo, long num_bytes )
|
CPP_METHODDEF(void) my_skip_input_data ( j_decompress_ptr cinfo, long num_bytes )
|
||||||
{
|
{
|
||||||
if (num_bytes > 0)
|
if (num_bytes > 0)
|
||||||
{
|
{
|
||||||
@@ -121,7 +132,7 @@ METHODDEF(void) my_skip_input_data ( j_decompress_ptr cinfo, long num_bytes )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
METHODDEF(void) my_term_source ( j_decompress_ptr cinfo )
|
CPP_METHODDEF(void) my_term_source ( j_decompress_ptr cinfo )
|
||||||
{
|
{
|
||||||
my_src_ptr src = (my_src_ptr) cinfo->src;
|
my_src_ptr src = (my_src_ptr) cinfo->src;
|
||||||
|
|
||||||
@@ -145,7 +156,7 @@ typedef struct my_error_mgr * my_error_ptr;
|
|||||||
* Here's the routine that will replace the standard error_exit method:
|
* Here's the routine that will replace the standard error_exit method:
|
||||||
*/
|
*/
|
||||||
|
|
||||||
METHODDEF(void) my_error_exit (j_common_ptr cinfo)
|
CPP_METHODDEF(void) my_error_exit (j_common_ptr cinfo)
|
||||||
{
|
{
|
||||||
/* cinfo->err really points to a my_error_mgr struct, so coerce pointer */
|
/* cinfo->err really points to a my_error_mgr struct, so coerce pointer */
|
||||||
my_error_ptr myerr = (my_error_ptr) cinfo->err;
|
my_error_ptr myerr = (my_error_ptr) cinfo->err;
|
||||||
@@ -254,7 +265,7 @@ typedef my_destination_mgr * my_dest_ptr;
|
|||||||
|
|
||||||
#define OUTPUT_BUF_SIZE 4096 /* choose an efficiently fwrite'able size */
|
#define OUTPUT_BUF_SIZE 4096 /* choose an efficiently fwrite'able size */
|
||||||
|
|
||||||
METHODDEF(void) init_destination (j_compress_ptr cinfo)
|
CPP_METHODDEF(void) init_destination (j_compress_ptr cinfo)
|
||||||
{
|
{
|
||||||
my_dest_ptr dest = (my_dest_ptr) cinfo->dest;
|
my_dest_ptr dest = (my_dest_ptr) cinfo->dest;
|
||||||
|
|
||||||
@@ -266,7 +277,7 @@ METHODDEF(void) init_destination (j_compress_ptr cinfo)
|
|||||||
dest->pub.free_in_buffer = OUTPUT_BUF_SIZE;
|
dest->pub.free_in_buffer = OUTPUT_BUF_SIZE;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHODDEF(boolean) empty_output_buffer (j_compress_ptr cinfo)
|
CPP_METHODDEF(boolean) empty_output_buffer (j_compress_ptr cinfo)
|
||||||
{
|
{
|
||||||
my_dest_ptr dest = (my_dest_ptr) cinfo->dest;
|
my_dest_ptr dest = (my_dest_ptr) cinfo->dest;
|
||||||
|
|
||||||
@@ -276,7 +287,7 @@ METHODDEF(boolean) empty_output_buffer (j_compress_ptr cinfo)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
METHODDEF(void) term_destination (j_compress_ptr cinfo)
|
CPP_METHODDEF(void) term_destination (j_compress_ptr cinfo)
|
||||||
{
|
{
|
||||||
my_dest_ptr dest = (my_dest_ptr) cinfo->dest;
|
my_dest_ptr dest = (my_dest_ptr) cinfo->dest;
|
||||||
size_t datacount = OUTPUT_BUF_SIZE - dest->pub.free_in_buffer;
|
size_t datacount = OUTPUT_BUF_SIZE - dest->pub.free_in_buffer;
|
||||||
|
@@ -208,26 +208,30 @@ typedef unsigned int JDIMENSION;
|
|||||||
* or code profilers that require it.
|
* or code profilers that require it.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if defined(__VISAGECPP__) /* need this for /common/imagjpeg.obj but not loclly */
|
#if defined(__VISAGECPP__)
|
||||||
/* a function called through method pointers: */
|
#define JPEG_CALLING_CONV _Optlink
|
||||||
#define METHODDEF(type) static type _Optlink
|
#else /* !Visual Age C++ */
|
||||||
/* a function used only in its module: */
|
#define JPEG_CALLING_CONV
|
||||||
#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
|
|
||||||
/* a function called through method pointers: */
|
|
||||||
#define METHODDEF(type) static type
|
|
||||||
/* a function used only in its module: */
|
|
||||||
#define LOCAL(type) static type
|
|
||||||
/* a function referenced thru EXTERNs: */
|
|
||||||
#define GLOBAL(type) type
|
|
||||||
/* a reference to a GLOBAL function: */
|
|
||||||
#define EXTERN(type) extern type
|
|
||||||
#endif
|
#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) JPEG_METHOD_LINKAGE type JPEG_CALLING_CONV
|
||||||
|
/* a function used only in its module: */
|
||||||
|
#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 JPEG_CALLING_CONV
|
||||||
|
|
||||||
/* This macro is used to declare a "method", that is, a function pointer.
|
/* This macro is used to declare a "method", that is, a function pointer.
|
||||||
* We want to supply prototype parameters if the compiler can cope.
|
* We want to supply prototype parameters if the compiler can cope.
|
||||||
* Note that the arglist parameter must be parenthesized!
|
* Note that the arglist parameter must be parenthesized!
|
||||||
|
Reference in New Issue
Block a user