From 17ebae657e11b672d0c1a5ae19f5ef889503eaf2 Mon Sep 17 00:00:00 2001 From: Mattia Barbon Date: Fri, 27 Dec 2002 21:39:58 +0000 Subject: [PATCH] Use wxWcslen instead of wcslen. Work around a compiler bug: with (at least) GCC 2.95.3-5 under Cygwin, the destructor for the global s_fileInfo is called twice (!). This does hot happen if a function returning a reference to a static variable is used. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18434 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/ole/dataobj.cpp | 2 +- src/msw/volume.cpp | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/msw/ole/dataobj.cpp b/src/msw/ole/dataobj.cpp index 3c66ba49e0..7e2d2132a8 100644 --- a/src/msw/ole/dataobj.cpp +++ b/src/msw/ole/dataobj.cpp @@ -474,7 +474,7 @@ STDMETHODIMP wxIDataObject::SetData(FORMATETC *pformatetc, || ( defined(__MWERKS__) && defined(__WXMSW__) ) size = std::wcslen((const wchar_t *)pBuf) * sizeof(wchar_t); #else - size = ::wcslen((const wchar_t *)pBuf) * sizeof(wchar_t); + size = wxWcslen((const wchar_t *)pBuf) * sizeof(wchar_t); #endif break; #endif diff --git a/src/msw/volume.cpp b/src/msw/volume.cpp index 6f4ada640d..628dc4e66c 100644 --- a/src/msw/volume.cpp +++ b/src/msw/volume.cpp @@ -102,7 +102,7 @@ static WNetCloseEnumPtr s_pWNetCloseEnum; //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ static long s_cancelSearch = FALSE; -struct FileInfo : public wxObject +struct FileInfo { FileInfo(unsigned flag=0, wxFSVolumeKind type=wxFS_VOL_OTHER) : m_flags(flag), m_type(type) {} @@ -119,7 +119,14 @@ struct FileInfo : public wxObject wxFSVolumeKind m_type; }; WX_DECLARE_STRING_HASH_MAP(FileInfo, FileInfoMap); -static FileInfoMap s_fileInfo(25); +// Cygwin bug (?) destructor for global s_fileInfo is called twice... +static FileInfoMap& GetFileInfoMap() +{ + static FileInfoMap s_fileInfo(25); + + return s_fileInfo; +} +#define s_fileInfo (GetFileInfoMap()) //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Other initialization. -- 2.47.2