]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/arrstr.h
build fixes for wxUSE_IPV6==1 under Windows
[wxWidgets.git] / include / wx / arrstr.h
index ddb11c0a31527e9a1a84ea53c7c4474f2161a518..f54844459b8934d8c49c9ea2aef3a1c7350753be 100644 (file)
@@ -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;