]> git.saurik.com Git - wxWidgets.git/commitdiff
use wxSwap()
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 15 Sep 2008 16:13:06 +0000 (16:13 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 15 Sep 2008 16:13:06 +0000 (16:13 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55650 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/arrstr.h
include/wx/dynarray.h
src/generic/grid.cpp

index ddb11c0a31527e9a1a84ea53c7c4474f2161a518..95b9506fdc82a3a1a066728a7cff7f737a056ad2 100644 (file)
@@ -303,22 +303,10 @@ public:
   size_type size() const { return GetCount(); }
   void swap(wxArrayString& other)
   {
-      // not sure if we can rely on having std::swap() everywhere so do it
-      // manually
-      const size_t savedSize = m_nSize;
-      const size_t savedCount = m_nCount;
-      wxString * const savedItems = m_pItems;
-      const bool savedAutoSort = m_autoSort;
-
-      m_nSize = other.m_nSize;
-      m_nCount = other.m_nCount;
-      m_pItems = other.m_pItems;
-      m_autoSort = other.m_autoSort;
-
-      other.m_nSize = savedSize;
-      other.m_nCount = savedCount;
-      other.m_pItems = savedItems;
-      other.m_autoSort = savedAutoSort;
+      wxSwap(m_nSize, other.m_nSize);
+      wxSwap(m_nCount, other.m_nCount);
+      wxSwap(m_pItems, other.m_pItems);
+      wxSwap(m_autoSort, other.m_autoSort);
   }
 
 protected:
index 8e579a9c647dac17537c8c6356dc290466aad399..1aaa3e7caf301e8ba22be70f4eac665348d32662 100644 (file)
@@ -284,17 +284,9 @@ protected:                                                          \
                                                                     \
   void swap(name& other)                                            \
   {                                                                 \
-    const size_t savedSize = m_nSize;                               \
-    const size_t savedCount = m_nCount;                             \
-    T * const savedItems = m_pItems;                                \
-                                                                    \
-    m_nSize = other.m_nSize;                                        \
-    m_nCount = other.m_nCount;                                      \
-    m_pItems = other.m_pItems;                                      \
-                                                                    \
-    other.m_nSize = savedSize;                                      \
-    other.m_nCount = savedCount;                                    \
-    other.m_pItems = savedItems;                                    \
+    wxSwap(m_nSize, other.m_nSize);                                 \
+    wxSwap(m_nCount, other.m_nCount);                               \
+    wxSwap(m_pItems, other.m_pItems);                               \
   }                                                                 \
                                                                     \
   /* the following functions may be made directly public because */ \
index 9e05bb3158fee9decf87afc9887be41391066048..3506da69f04928605ee18bdbc86b2effcdf32177 100644 (file)
@@ -439,6 +439,23 @@ static const size_t GRID_SCROLL_LINE_Y = GRID_SCROLL_LINE_X;
 // in these hash tables is the number of rows/columns)
 static const int GRID_HASH_SIZE = 100;
 
+// ----------------------------------------------------------------------------
+// private helpers
+// ----------------------------------------------------------------------------
+
+namespace
+{
+
+// ensure that first is less or equal to second, swapping the values if
+// necessary
+void EnsureFirstLessThanSecond(int& first, int& second)
+{
+    if ( first > second )
+        wxSwap(first, second);
+}
+
+} // anonymous namespace
+
 // ============================================================================
 // implementation
 // ============================================================================
@@ -7179,9 +7196,8 @@ void wxGrid::SetCurrentCell( const wxGridCellCoords& coords )
     attr->DecRef();
 }
 
-void wxGrid::HighlightBlock( int topRow, int leftCol, int bottomRow, int rightCol )
+void wxGrid::HighlightBlock(int topRow, int leftCol, int bottomRow, int rightCol)
 {
-    int temp;
     wxGridCellCoords updateTopLeft, updateBottomRight;
 
     if ( m_selection )
@@ -7198,19 +7214,8 @@ void wxGrid::HighlightBlock( int topRow, int leftCol, int bottomRow, int rightCo
         }
     }
 
-    if ( topRow > bottomRow )
-    {
-        temp = topRow;
-        topRow = bottomRow;
-        bottomRow = temp;
-    }
-
-    if ( leftCol > rightCol )
-    {
-        temp = leftCol;
-        leftCol = rightCol;
-        rightCol = temp;
-    }
+    EnsureFirstLessThanSecond(topRow, bottomRow);
+    EnsureFirstLessThanSecond(leftCol, rightCol);
 
     updateTopLeft = wxGridCellCoords( topRow, leftCol );
     updateBottomRight = wxGridCellCoords( bottomRow, rightCol );
@@ -7247,30 +7252,10 @@ void wxGrid::HighlightBlock( int topRow, int leftCol, int bottomRow, int rightCo
         wxCoord oldBottom = m_selectingBottomRight.GetRow();
 
         // Determine the outer/inner coordinates.
-        if (oldLeft > leftCol)
-        {
-            temp = oldLeft;
-            oldLeft = leftCol;
-            leftCol = temp;
-        }
-        if (oldTop > topRow )
-        {
-            temp = oldTop;
-            oldTop = topRow;
-            topRow = temp;
-        }
-        if (oldRight < rightCol )
-        {
-            temp = oldRight;
-            oldRight = rightCol;
-            rightCol = temp;
-        }
-        if (oldBottom < bottomRow)
-        {
-            temp = oldBottom;
-            oldBottom = bottomRow;
-            bottomRow = temp;
-        }
+        EnsureFirstLessThanSecond(oldLeft, leftCol);
+        EnsureFirstLessThanSecond(oldTop, topRow);
+        EnsureFirstLessThanSecond(rightCol, oldRight);
+        EnsureFirstLessThanSecond(bottomRow, oldBottom);
 
         // Now, either the stuff marked old is the outer
         // rectangle or we don't have a situation where one