]> git.saurik.com Git - wxWidgets.git/commitdiff
fixed 64but bug with g_strEmpty initialization
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 17 Sep 1998 14:31:17 +0000 (14:31 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 17 Sep 1998 14:31:17 +0000 (14:31 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@742 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/string.h
src/common/string.cpp

index 978ee25b7700c75dea88c07c469cea15d3730aff..44d6803a1b5d6edbf970dbc12744e282e95d71df 100644 (file)
@@ -125,7 +125,7 @@ inline const wxString& wxGetEmptyString() { return *(wxString *)&g_szNul; }
 struct WXDLLEXPORT wxStringData
 {
   int     nRefs;        // reference count
 struct WXDLLEXPORT wxStringData
 {
   int     nRefs;        // reference count
-  size_t    nDataLength,  // actual string length
+  size_t  nDataLength,  // actual string length
           nAllocLength; // allocated memory size
 
   // mimics declaration 'char data[nAllocLength]'
           nAllocLength; // allocated memory size
 
   // mimics declaration 'char data[nAllocLength]'
index 05dce3179ba7984c279628cbd326afe6a0ecf7b6..1bcf9bff838dde7aeed0890558a27691d978285f 100644 (file)
@@ -32,9 +32,9 @@
 #endif
 
 #ifndef WX_PRECOMP
 #endif
 
 #ifndef WX_PRECOMP
-#include "wx/defs.h"
-#include "wx/string.h"
-#include <wx/intl.h>
+  #include "wx/defs.h"
+  #include "wx/string.h"
+  #include "wx/intl.h"
 #endif
 
 #include <ctype.h>
 #endif
 
 #include <ctype.h>
 // static data
 // ----------------------------------------------------------------------------
 
 // static data
 // ----------------------------------------------------------------------------
 
-// for an empty string, GetStringData() will return this address
-static int g_strEmpty[] = { -1,     // ref count (locked)
-                             0,     // current length
-                             0,     // allocated memory
-                             0 };   // string data
+// for an empty string, GetStringData() will return this address: this
+// structure has the same layout as wxStringData and it's data() method will
+// return the empty string (dummy pointer)
+static const struct
+{
+  wxStringData data;
+  char dummy;
+} g_strEmpty = { {-1, 0, 0}, '\0' };
+
 // empty C style string: points to 'string data' byte of g_strEmpty
 // empty C style string: points to 'string data' byte of g_strEmpty
-extern const char *g_szNul = (const char *)(&g_strEmpty[3]);
+extern const char *g_szNul = &g_strEmpty.dummy;
 
 // ----------------------------------------------------------------------------
 // global functions
 
 // ----------------------------------------------------------------------------
 // global functions