# endif
#endif /* wxUSE_WCHAR_T */
+/*
+ This constant should be used instead of NULL in vararg functions taking
+ wxChar* arguments: passing NULL (which is the same as 0, unless the compiler
+ defines it specially, e.g. like gcc does with its __null built-in) doesn't
+ work in this case as va_arg() wouldn't interpret the integer 0 correctly
+ when trying to convert it to a pointer on architectures where sizeof(int) is
+ strictly less than sizeof(void *).
+
+ Examples of places where this must be used include wxFileTypeInfo ctor.
+ */
+#define wxNullPtr ((void *)NULL)
+
/* ---------------------------------------------------------------------------- */
/* byte ordering related definition and macros */
/* ---------------------------------------------------------------------------- */
// const wxString& openCmd,
// const wxString& printCmd,
// const wxString& desc,
- // // the other parameters form a NULL terminated list of
- // // extensions
+ // // the other parameters form a list of extensions for this
+ // // file type and should be terminated with wxNullPtr (not
+ // // just NULL!)
// ...);
WX_DEFINE_VARARG_FUNC_CTOR(wxFileTypeInfo,
// NB: these are not format strings, using
wxEmptyString,
wxEmptyString,
_T("JPEG image (from fallback)"),
- _T("jpg"), _T("jpeg"), _T("JPG"), _T("JPEG"), 0),
+ _T("jpg"), _T("jpeg"), _T("JPG"), _T("JPEG"), wxNullPtr),
wxFileTypeInfo(_T("image/gif"),
wxEmptyString,
wxEmptyString,
_T("GIF image (from fallback)"),
- _T("gif"), _T("GIF"), 0),
+ _T("gif"), _T("GIF"), wxNullPtr),
wxFileTypeInfo(_T("image/png"),
wxEmptyString,
wxEmptyString,
_T("PNG image (from fallback)"),
- _T("png"), _T("PNG"), 0),
+ _T("png"), _T("PNG"), wxNullPtr),
wxFileTypeInfo(_T("image/bmp"),
wxEmptyString,
wxEmptyString,
_T("windows bitmap image (from fallback)"),
- _T("bmp"), _T("BMP"), 0),
+ _T("bmp"), _T("BMP"), wxNullPtr),
wxFileTypeInfo(_T("text/html"),
wxEmptyString,
wxEmptyString,
_T("HTML document (from fallback)"),
- _T("htm"), _T("html"), _T("HTM"), _T("HTML"), 0),
+ _T("htm"), _T("html"), _T("HTM"), _T("HTML"), wxNullPtr),
// must terminate the table with this!
wxFileTypeInfo()
};