]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/extended.c
fixing overrelease and out-of-bounds write, fixes #13725
[wxWidgets.git] / src / common / extended.c
index 9e2b55f9d9749cedb8994e15c01cda9f8974200a..2b6f4eb3aa6e637ebbeaaaef6c814eeac99a3758 100644 (file)
@@ -1,5 +1,5 @@
 /*****************************************************************************
-** Name:        extended.c
+** Name:        src/common/extended.c
 ** Purpose:     IEEE Extended<->Double routines to save floats to file
 ** Maintainer:  Ryan Norton
 ** Modified by:
@@ -8,6 +8,12 @@
 *****************************************************************************/
 
 
+#if defined(_WIN32_WCE)
+    /* eVC cause warnings in its own headers: stdlib.h and winnt.h */
+    #pragma warning (disable:4115)
+    #pragma warning (disable:4214)
+#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <ctype.h>
 #include <string.h>
 #include "wx/defs.h"
 
+#if defined(_WIN32_WCE)
+    #pragma warning (default:4115)
+    #pragma warning (default:4214)
+#endif
+
 #if wxUSE_APPLE_IEEE
 
 #include "wx/math.h"
  * and a 64-bit mantissa, with no hidden bit.
  ****************************************************************/
 
-wxFloat64 ConvertFromIeeeExtended(wxInt8* bytes)
+WXDLLIMPEXP_BASE wxFloat64 wxConvertFromIeeeExtended(const wxInt8 *bytes)
 {
     wxFloat64 f;
     wxInt32 expon;
@@ -134,7 +145,7 @@ wxFloat64 ConvertFromIeeeExtended(wxInt8* bytes)
 /****************************************************************/
 
 
-void ConvertToIeeeExtended(wxFloat64 num, wxInt8 *bytes)
+WXDLLIMPEXP_BASE void wxConvertToIeeeExtended(wxFloat64 num, wxInt8 *bytes)
 {
     wxInt32 sign;
     wxInt32 expon;
@@ -180,6 +191,16 @@ void ConvertToIeeeExtended(wxFloat64 num, wxInt8 *bytes)
     bytes[9] = loMant;
 }
 
+#if WXWIN_COMPATIBILITY_2_8
+WXDLLIMPEXP_BASE wxFloat64 ConvertFromIeeeExtended(const wxInt8 *bytes)
+{
+    return wxConvertFromIeeeExtended(bytes);
+}
 
+WXDLLIMPEXP_BASE void ConvertToIeeeExtended(wxFloat64 num, wxInt8 *bytes)
+{
+    wxConvertToIeeeExtended(num, bytes);
+}
+#endif // WXWIN_COMPATIBILITY_2_8
 
 #endif /* wxUSE_APPLE_IEEE */