X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9127686895aa155a4c5b3c5f4feaeaed15626936..619df5a4e25a131c38dbaa2b9c0eab481c344723:/include/wx/arrstr.h

diff --git a/include/wx/arrstr.h b/include/wx/arrstr.h
index ddb11c0a31..f54844459b 100644
--- a/include/wx/arrstr.h
+++ b/include/wx/arrstr.h
@@ -295,30 +295,20 @@ public:
   void pop_back() { RemoveAt(GetCount() - 1); }
   void push_back(const_reference v) { Add(v); }
   reverse_iterator rbegin() { return reverse_iterator(end() - 1); }
-  const_reverse_iterator rbegin() const;
+  const_reverse_iterator rbegin() const
+    { return const_reverse_iterator(end() - 1); }
   reverse_iterator rend() { return reverse_iterator(begin() - 1); }
-  const_reverse_iterator rend() const;
+  const_reverse_iterator rend() const
+    { return const_reverse_iterator(begin() - 1); }
   void reserve(size_type n) /* base::reserve*/;
   void resize(size_type n, value_type v = value_type());
   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:
@@ -367,6 +357,14 @@ public:
             m_strings[i] = m_array[i];
         return m_strings;
     }
+
+    wxString* Release()
+    {
+        wxString *r = GetStrings();
+        m_strings = NULL;
+        return r;
+    }
+
 private:
     const wxArrayString& m_array;
     wxString* m_strings;