]> git.saurik.com Git - wxWidgets.git/commitdiff
Fix lots of warnings reported by Clang.
authorVáclav Slavík <vslavik@fastmail.fm>
Wed, 10 Jul 2013 16:41:34 +0000 (16:41 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Wed, 10 Jul 2013 16:41:34 +0000 (16:41 +0000)
Mostly potentially lossy implicit conversions in headers (long->int). Also dangling else warnings. Struct/class mismatches.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74473 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

23 files changed:
include/wx/dynarray.h
include/wx/gdicmn.h
include/wx/graphics.h
include/wx/hashmap.h
include/wx/html/htmlcell.h
include/wx/html/htmltag.h
include/wx/html/winpars.h
include/wx/list.h
include/wx/longlong.h
include/wx/osx/carbon/region.h
include/wx/sizer.h
include/wx/statusbr.h
include/wx/stc/stc.h
include/wx/string.h
include/wx/unichar.h
include/wx/windowid.h
interface/wx/graphics.h
interface/wx/statusbr.h
src/common/any.cpp
src/common/filefn.cpp
src/common/intl.cpp
src/osx/cocoa/dataview.mm
src/stc/stc.h.in

index a7ebbfe176e552a764ee3662aeb12330baf599c9..2b78615e7ace361fa40d460ba3100cde5b13a0c8 100644 (file)
@@ -251,7 +251,7 @@ protected:                                                          \
   typedef const value_type* const_iterator;                         \
   typedef value_type& reference;                                    \
   typedef const value_type& const_reference;                        \
-  typedef int difference_type;                                      \
+  typedef ptrdiff_t difference_type;                                \
   typedef size_t size_type;                                         \
                                                                     \
   void assign(const_iterator first, const_iterator last);           \
index 624c49507263fde72a28a35aec5c221dd963b55d..eeb848f1d64a54044e7b0ebf340554b377a7540a 100644 (file)
@@ -381,27 +381,27 @@ inline wxSize operator/(const wxSize& s, long i)
 
 inline wxSize operator*(const wxSize& s, long i)
 {
-    return wxSize(s.x * i, s.y * i);
+    return wxSize(int(s.x * i), int(s.y * i));
 }
 
 inline wxSize operator*(long i, const wxSize& s)
 {
-    return wxSize(s.x * i, s.y * i);
+    return wxSize(int(s.x * i), int(s.y * i));
 }
 
 inline wxSize operator/(const wxSize& s, unsigned long i)
 {
-    return wxSize(s.x / i, s.y / i);
+    return wxSize(int(s.x / i), int(s.y / i));
 }
 
 inline wxSize operator*(const wxSize& s, unsigned long i)
 {
-    return wxSize(s.x * i, s.y * i);
+    return wxSize(int(s.x * i), int(s.y * i));
 }
 
 inline wxSize operator*(unsigned long i, const wxSize& s)
 {
-    return wxSize(s.x * i, s.y * i);
+    return wxSize(int(s.x * i), int(s.y * i));
 }
 
 inline wxSize operator*(const wxSize& s, double i)
@@ -655,12 +655,12 @@ inline wxPoint operator/(const wxPoint& s, long i)
 
 inline wxPoint operator*(const wxPoint& s, long i)
 {
-    return wxPoint(s.x * i, s.y * i);
+    return wxPoint(int(s.x * i), int(s.y * i));
 }
 
 inline wxPoint operator*(long i, const wxPoint& s)
 {
-    return wxPoint(s.x * i, s.y * i);
+    return wxPoint(int(s.x * i), int(s.y * i));
 }
 
 inline wxPoint operator/(const wxPoint& s, unsigned long i)
@@ -670,12 +670,12 @@ inline wxPoint operator/(const wxPoint& s, unsigned long i)
 
 inline wxPoint operator*(const wxPoint& s, unsigned long i)
 {
-    return wxPoint(s.x * i, s.y * i);
+    return wxPoint(int(s.x * i), int(s.y * i));
 }
 
 inline wxPoint operator*(unsigned long i, const wxPoint& s)
 {
-    return wxPoint(s.x * i, s.y * i);
+    return wxPoint(int(s.x * i), int(s.y * i));
 }
 
 inline wxPoint operator*(const wxPoint& s, double i)
index 656a338d3bdbbda37b3cbb3ec4fae42d7ce0edab..6b1a0ee5f199733cbad9a5107ac074a978536778 100644 (file)
@@ -398,7 +398,7 @@ public:
     void Add(wxColour col, float pos) { Add(wxGraphicsGradientStop(col, pos)); }
 
     // Get the number of stops.
-    unsigned GetCount() const { return m_stops.size(); }
+    size_t GetCount() const { return m_stops.size(); }
 
     // Return the stop at the given index (which must be valid).
     wxGraphicsGradientStop Item(unsigned n) const { return m_stops.at(n); }
index 9a25f8e183a2b1199ccf0afcd947cfcbc8fa22b9..3fc44993a4c20034dc1c42fe88d32df6e69c8faa 100644 (file)
@@ -483,8 +483,9 @@ inline bool grow_lf70( size_t buckets, size_t items )
 #ifndef wxNEEDS_WX_HASH_MAP
 
 // integer types
-class WXDLLIMPEXP_BASE wxIntegerHash
+struct WXDLLIMPEXP_BASE wxIntegerHash
 {
+private:
     WX_HASH_MAP_NAMESPACE::hash<long> longHash;
     WX_HASH_MAP_NAMESPACE::hash<unsigned long> ulongHash;
     WX_HASH_MAP_NAMESPACE::hash<int> intHash;
@@ -527,9 +528,8 @@ public:
 #else // wxNEEDS_WX_HASH_MAP
 
 // integer types
-class WXDLLIMPEXP_BASE wxIntegerHash
+struct WXDLLIMPEXP_BASE wxIntegerHash
 {
-public:
     wxIntegerHash() { }
     unsigned long operator()( long x ) const { return (unsigned long)x; }
     unsigned long operator()( unsigned long x ) const { return x; }
@@ -547,9 +547,8 @@ public:
 
 #endif // !wxNEEDS_WX_HASH_MAP/wxNEEDS_WX_HASH_MAP
 
-class WXDLLIMPEXP_BASE wxIntegerEqual
+struct WXDLLIMPEXP_BASE wxIntegerEqual
 {
-public:
     wxIntegerEqual() { }
     bool operator()( long a, long b ) const { return a == b; }
     bool operator()( unsigned long a, unsigned long b ) const { return a == b; }
@@ -566,9 +565,8 @@ public:
 };
 
 // pointers
-class WXDLLIMPEXP_BASE wxPointerHash
+struct WXDLLIMPEXP_BASE wxPointerHash
 {
-public:
     wxPointerHash() { }
 
 #ifdef wxNEEDS_WX_HASH_MAP
@@ -580,9 +578,8 @@ public:
     wxPointerHash& operator=(const wxPointerHash&) { return *this; }
 };
 
-class WXDLLIMPEXP_BASE wxPointerEqual
+struct WXDLLIMPEXP_BASE wxPointerEqual
 {
-public:
     wxPointerEqual() { }
     bool operator()( const void* a, const void* b ) const { return a == b; }
 
@@ -590,9 +587,8 @@ public:
 };
 
 // wxString, char*, wchar_t*
-class WXDLLIMPEXP_BASE wxStringHash
+struct WXDLLIMPEXP_BASE wxStringHash
 {
-public:
     wxStringHash() {}
     unsigned long operator()( const wxString& x ) const
         { return stringHash( x.wx_str() ); }
@@ -616,9 +612,8 @@ public:
     wxStringHash& operator=(const wxStringHash&) { return *this; }
 };
 
-class WXDLLIMPEXP_BASE wxStringEqual
+struct WXDLLIMPEXP_BASE wxStringEqual
 {
-public:
     wxStringEqual() {}
     bool operator()( const wxString& a, const wxString& b ) const
         { return a == b; }
index c0d03c8a269d3ae175ca4e9bbd808ad0e9c63a41..c42299eb266df6b51b6b1f25ac5b73f67ad8d073 100644 (file)
@@ -345,9 +345,9 @@ protected:
     wxHtmlContainerCell *m_Parent;
 
     // dimensions of fragment (m_Descent is used to position text & images)
-    long m_Width, m_Height, m_Descent;
+    int m_Width, m_Height, m_Descent;
     // position where the fragment is drawn:
-    long m_PosX, m_PosY;
+    int m_PosX, m_PosY;
 
     // superscript/subscript/normal:
     wxHtmlScriptMode m_ScriptMode;
index 4ff2164beb4ab2a99e8835abc073177c5a98fdaf..cde771ae7d7232770b66809346b788688d0cd5eb 100644 (file)
@@ -165,9 +165,9 @@ private:
 
 
 #if WXWIN_COMPATIBILITY_2_8
-inline int wxHtmlTag::GetBeginPos() const { return m_Begin - m_sourceStart; }
-inline int wxHtmlTag::GetEndPos1() const { return m_End1 - m_sourceStart; }
-inline int wxHtmlTag::GetEndPos2() const { return m_End2 - m_sourceStart; }
+inline int wxHtmlTag::GetBeginPos() const { return int(m_Begin - m_sourceStart); }
+inline int wxHtmlTag::GetEndPos1() const { return int(m_End1 - m_sourceStart); }
+inline int wxHtmlTag::GetEndPos2() const { return int(m_End2 - m_sourceStart); }
 #endif // WXWIN_COMPATIBILITY_2_8
 
 
index 3347e4e36936fc2b7298c92e49e0600a89aed036..978e19fb5491c1d1e5cf22692fc5f5b13ffbdb80 100644 (file)
@@ -204,7 +204,7 @@ private:
             // actual hypertext link or empty string
     bool m_UseLink;
             // true if m_Link is not empty
-    long m_CharHeight, m_CharWidth;
+    int m_CharHeight, m_CharWidth;
             // average height of normal-sized text
     int m_Align;
             // actual alignment
index ed34130a165d7088be2ea91e421ffa01a9621025..7a96c251525a8c685342a1072d7a3c0d5ff85c17 100644 (file)
@@ -218,7 +218,7 @@ inline const void *wxListCastElementToVoidPtr(const wxString& str)
             }                                                                 \
             int IndexOf() const                                               \
             {                                                                 \
-                return *this ? std::distance( m_list->begin(), m_iter )       \
+                return *this ? (int)std::distance( m_list->begin(), m_iter )  \
                              : wxNOT_FOUND;                                   \
             }                                                                 \
         };                                                                    \
index 19c580110e25dccaf721f61e413bfcd320b5070a..9af6691913125925f94a5f9eee8de6bc54e0b1c0 100644 (file)
@@ -1067,7 +1067,7 @@ inline wxULongLong operator+(unsigned long l, const wxULongLong& ull) { return u
 inline wxLongLong operator-(unsigned long l, const wxULongLong& ull)
 {
     wxULongLong ret = wxULongLong(l) - ull;
-    return wxLongLong((long)ret.GetHi(),ret.GetLo());
+    return wxLongLong((wxInt32)ret.GetHi(),ret.GetLo());
 }
 
 #if wxUSE_LONGLONG_NATIVE && wxUSE_STREAMS
index eec9be0037ec614fba75c3b56fb41dfbb0f8de98..a1eb18a64be96cbd6b982bf117e9610cc4079f41 100644 (file)
@@ -87,7 +87,7 @@ public:
     long GetWidth() const { return GetW(); }
     long GetH() const;
     long GetHeight() const { return GetH(); }
-    wxRect GetRect() const { return wxRect(GetX(), GetY(), GetWidth(), GetHeight()); }
+    wxRect GetRect() const { return wxRect((int)GetX(), (int)GetY(), (int)GetWidth(), (int)GetHeight()); }
 
 private:
     void SetRects(long numRects, wxRect *rects);
index 29facff1e2278a182cd152c3d52c1762a4058f1f..e11720a4e04b389b57de4ad8dac73d909bb7d88e 100644 (file)
@@ -814,7 +814,7 @@ protected:
             "Can't calculate number of cols if number of rows is not specified"
         );
 
-        return (m_children.GetCount() + m_rows - 1) / m_rows;
+        return int(m_children.GetCount() + m_rows - 1) / m_rows;
     }
 
     int CalcRows() const
@@ -825,7 +825,7 @@ protected:
             "Can't calculate number of cols if number of rows is not specified"
         );
 
-        return (m_children.GetCount() + m_cols - 1) / m_cols;
+        return int(m_children.GetCount() + m_cols - 1) / m_cols;
     }
 
 private:
index 52e134f19edb8174cc9b73215579550b84491bc3..335cea8302b8ff4ae974b5ac631f571d4f33d804 100644 (file)
@@ -54,7 +54,7 @@ extern WXDLLIMPEXP_DATA_CORE(const char) wxStatusBarNameStr[];
 class WXDLLIMPEXP_CORE wxStatusBarPane
 {
 public:
-    wxStatusBarPane(int style = wxSB_NORMAL, size_t width = 0)
+    wxStatusBarPane(int style = wxSB_NORMAL, int width = 0)
         : m_nStyle(style), m_nWidth(width)
         { m_bEllipsized = false; }
 
@@ -120,7 +120,7 @@ public:
     // set the number of fields and call SetStatusWidths(widths) if widths are
     // given
     virtual void SetFieldsCount(int number = 1, const int *widths = NULL);
-    int GetFieldsCount() const { return m_panes.GetCount(); }
+    int GetFieldsCount() const { return (int)m_panes.GetCount(); }
 
     // field text
     // ----------
index c406e6a6876c267b288a163e47d042b3280d73bf..a5c8ed8001bfe712f2e3caeef2dde58cf4be1817 100644 (file)
@@ -4557,8 +4557,8 @@ public:
     }
     virtual void Replace(long from, long to, const wxString& text)
     {
-        SetTargetStart(from);
-        SetTargetEnd(to);
+        SetTargetStart((int)from);
+        SetTargetEnd((int)to);
         ReplaceTarget(text);
     }
 
@@ -4579,7 +4579,7 @@ public:
 
     virtual void SetInsertionPoint(long pos)
     {
-        SetCurrentPos(pos == -1 ? GetLastPosition() : pos);
+        SetCurrentPos(int(pos == -1 ? GetLastPosition() : pos));
     }
     virtual long GetInsertionPoint() const { return GetCurrentPos(); }
     virtual long GetLastPosition() const { return GetTextLength(); }
@@ -4592,8 +4592,8 @@ public:
         }
         else
         {
-            SetSelectionStart(from);
-            SetSelectionEnd(to);
+            SetSelectionStart((int)from);
+            SetSelectionEnd((int)to);
         }
     }
 
@@ -4619,9 +4619,9 @@ public:
         long f, t;
         GetSelection(&f, &t);
         if ( from )
-            *from = f;
+            *from = (int)f;
         if ( to )
-            *to = t;
+            *to = (int)t;
     }
 #endif
 
@@ -4673,14 +4673,14 @@ public:
 
     virtual long XYToPosition(long x, long y) const
     {
-        long pos = PositionFromLine(y);
+        long pos = PositionFromLine((int)y);
         pos += x;
         return pos;
     }
 
     virtual bool PositionToXY(long pos, long *x, long *y) const
     {
-        long l = LineFromPosition(pos);
+        int l = LineFromPosition((int)pos);
         if ( l == -1 )
             return false;
 
@@ -4693,7 +4693,7 @@ public:
         return true;
     }
 
-    virtual void ShowPosition(long pos) { GotoPos(pos); }
+    virtual void ShowPosition(long pos) { GotoPos((int)pos); }
 
     // FIXME-VC6: can't use wxWindow here because of "error C2603: illegal
     //            access declaration: 'wxWindow' is not a direct base of
index 53ae8907d8b0185320b00251412fc71c9ecb392e..ad47cd2fbcf9c62ad88a183468b51eb4e94167f4 100644 (file)
@@ -889,7 +889,7 @@ public:
       public:                                                               \
           WX_DEFINE_ITERATOR_CATEGORY(WX_STR_ITERATOR_TAG)                  \
           typedef wxUniChar value_type;                                     \
-          typedef int difference_type;                                      \
+          typedef ptrdiff_t difference_type;                                \
           typedef reference_type reference;                                 \
           typedef pointer_type pointer;                                     \
                                                                             \
index be2ce619ed51c39b2a1123cb5579d7e9242e5ea3..f2ca9c3df4a9fe365cc56ee632bd968a2beba5fb 100644 (file)
@@ -36,7 +36,7 @@ public:
     wxUniChar(unsigned char c) { m_value = From8bit((char)c); }
 
 #define wxUNICHAR_DEFINE_CTOR(type) \
-    wxUniChar(type c) { m_value = c; }
+    wxUniChar(type c) { m_value = (value_type)c; }
     wxDO_FOR_INT_TYPES(wxUNICHAR_DEFINE_CTOR)
 #undef wxUNICHAR_DEFINE_CTOR
 
@@ -112,7 +112,7 @@ public:
     wxUniChar& operator=(unsigned char c) { m_value = From8bit((char)c); return *this; }
 
 #define wxUNICHAR_DEFINE_OPERATOR_EQUAL(type) \
-    wxUniChar& operator=(type c) { m_value = c; return *this; }
+    wxUniChar& operator=(type c) { m_value = (value_type)c; return *this; }
     wxDO_FOR_INT_TYPES(wxUNICHAR_DEFINE_OPERATOR_EQUAL)
 #undef wxUNICHAR_DEFINE_OPERATOR_EQUAL
 
index e16b4534abe50f7cc078d502e0ac523974ef2b88..2360085c7f42ce22a441cab5879a21d3eed10c0f 100644 (file)
@@ -43,7 +43,7 @@ public:
 
     wxWindowIDRef(long id)
     {
-        Init(id);
+        Init(wxWindowID(id));
     }
 
     wxWindowIDRef(const wxWindowIDRef& id)
@@ -66,7 +66,7 @@ public:
 
     wxWindowIDRef& operator=(long id)
     {
-        Assign(id);
+        Assign(wxWindowID(id));
         return *this;
     }
 
index a8ebbabd67a1a6749362565200417f0b5c90f6a7..2f052a5f0805e75d743bad7390f7ae658a08343a 100644 (file)
@@ -981,7 +981,7 @@ public:
     /**
         Returns the number of stops.
     */
-    unsigned GetCount() const;
+    size_t GetCount() const;
 
     /**
         Set the start colour to @a col
index 8070fe0c10402b42f2993763866f4196659afa4c..5474d0eb87aadccbea9cc6a45a2b537853fe3ee7 100644 (file)
@@ -39,7 +39,7 @@ public:
     /**
         Constructs the pane with the given @a style and @a width.
     */
-    wxStatusBarPane(int style = wxSB_NORMAL, size_t width = 0);
+    wxStatusBarPane(int style = wxSB_NORMAL, int width = 0);
 
     /**
         Returns the pane width; it maybe negative, indicating a variable-width field.
index cefcc2a1d88ff6a4b993002cbdc4954709091a87..228f1770b36826fece26670ead50ddb7f023ad87 100644 (file)
@@ -484,7 +484,9 @@ WX_IMPLEMENT_ANY_VALUE_TYPE(wxAnyValueTypeImpl<wxDateTime>)
 
 class wxAnyNullValue
 {
-private:
+protected:
+    // this field is unused, but can't be private to avoid Clang's
+    // "Private field 'm_dummy' is not used" warning
     void*   m_dummy;
 };
 
index 061ea5f7c3dbf73125c678dd26c57809fe9567d7..f723d120db9aa142e0ea4ef20d17eb9e3d5c0396 100644 (file)
@@ -1390,7 +1390,7 @@ wxChar *wxDoGetCwd(wxChar *buf, int sz)
         buf = new wxChar[sz + 1];
     }
 
-    bool ok wxDUMMY_INITIALIZE(false);
+    bool ok = false;
 
     // for the compilers which have Unicode version of _getcwd(), call it
     // directly, for the others call the ANSI version and do the translation
index 16bdbd45639c1527175f4b248354fab23218f77c..57919559a4b68f7628c985d105974832f97d8871 100644 (file)
@@ -571,12 +571,14 @@ bool wxLocale::Init(int language, int flags)
 namespace
 {
 
+#ifndef __WXOSX__
 // Small helper function: get the value of the given environment variable and
 // return true only if the variable was found and has non-empty value.
 inline bool wxGetNonEmptyEnvVar(const wxString& name, wxString* value)
 {
     return wxGetEnv(name, value) && !value->empty();
 }
+#endif
 
 } // anonymous namespace
 
@@ -591,7 +593,7 @@ inline bool wxGetNonEmptyEnvVar(const wxString& name, wxString* value)
 #if defined(__UNIX__)
     // first get the string identifying the language from the environment
     wxString langFull;
-#ifdef __WXMAC__
+#ifdef __WXOSX__
     wxCFRef<CFLocaleRef> userLocaleRef(CFLocaleCopyCurrent());
 
     // because the locale identifier (kCFLocaleIdentifier) is formatted a little bit differently, eg
index 465305fbbc8f8ad632db33979733b73eae287a75..5bae6bb0f21db3219bd23c81afee574cd07467b1 100644 (file)
@@ -965,6 +965,7 @@ outlineView:(NSOutlineView*)outlineView
                 delete[] dataFormats;
                 delete itemObject;
                 if (dataStringAvailable)
+                {
                     if (itemStringAvailable)
                     {
                         if (itemCounter > 0)
@@ -973,6 +974,7 @@ outlineView:(NSOutlineView*)outlineView
                     }
                     else
                         dataStringAvailable = false;
+                }
             }
             else
             {
@@ -1701,7 +1703,7 @@ outlineView:(NSOutlineView*)outlineView
         NSArray*          sortDescriptors;
         NSSortDescriptor* sortDescriptor;
 
-        sortDescriptor = [[NSSortDescriptor alloc] initWithKey:[NSString stringWithFormat:@"%d",[outlineView columnWithIdentifier:[tableColumn identifier]]]
+        sortDescriptor = [[NSSortDescriptor alloc] initWithKey:[NSString stringWithFormat:@"%ld",(long)[outlineView columnWithIdentifier:[tableColumn identifier]]]
             ascending:YES];
         sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
         [tableColumn setSortDescriptorPrototype:sortDescriptor];
index b82bea900cc75810f89f1232e35f5499fec829c9..009ca23df69905040d70d22fa000d955f703f2fa 100644 (file)
@@ -299,8 +299,8 @@ public:
     }
     virtual void Replace(long from, long to, const wxString& text)
     {
-        SetTargetStart(from);
-        SetTargetEnd(to);
+        SetTargetStart((int)from);
+        SetTargetEnd((int)to);
         ReplaceTarget(text);
     }
 
@@ -321,7 +321,7 @@ public:
 
     virtual void SetInsertionPoint(long pos)
     {
-        SetCurrentPos(pos == -1 ? GetLastPosition() : pos);
+        SetCurrentPos(int(pos == -1 ? GetLastPosition() : pos));
     }
     virtual long GetInsertionPoint() const { return GetCurrentPos(); }
     virtual long GetLastPosition() const { return GetTextLength(); }
@@ -334,8 +334,8 @@ public:
         }
         else
         {
-            SetSelectionStart(from);
-            SetSelectionEnd(to);
+            SetSelectionStart((int)from);
+            SetSelectionEnd((int)to);
         }
     }
 
@@ -361,9 +361,9 @@ public:
         long f, t;
         GetSelection(&f, &t);
         if ( from )
-            *from = f;
+            *from = (int)f;
         if ( to )
-            *to = t;
+            *to = (int)t;
     }
 #endif
 
@@ -415,14 +415,14 @@ public:
 
     virtual long XYToPosition(long x, long y) const
     {
-        long pos = PositionFromLine(y);
+        long pos = PositionFromLine((int)y);
         pos += x;
         return pos;
     }
 
     virtual bool PositionToXY(long pos, long *x, long *y) const
     {
-        long l = LineFromPosition(pos);
+        int l = LineFromPosition((int)pos);
         if ( l == -1 )
             return false;
 
@@ -435,7 +435,7 @@ public:
         return true;
     }
 
-    virtual void ShowPosition(long pos) { GotoPos(pos); }
+    virtual void ShowPosition(long pos) { GotoPos((int)pos); }
 
     // FIXME-VC6: can't use wxWindow here because of "error C2603: illegal
     //            access declaration: 'wxWindow' is not a direct base of