]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/buffer.h
bug fixes for using wxTransientPopupWindow and wxDP_ALLOWNONE support from Andreas...
[wxWidgets.git] / include / wx / buffer.h
index 17fd98fff29cd93738e50bf19e3abdb6485903dd..976177e3f1f06a464df0a486f5668b237a6b9ce8 100644 (file)
@@ -6,17 +6,15 @@
 // Created:     12.04.99
 // RCS-ID:      $Id$
 // Copyright:   (c) 1998 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
-// these classes are for private use only for now, they're not documented
-
 #ifndef _WX_BUFFER_H
 #define _WX_BUFFER_H
 
 #include "wx/wxchar.h"
 
-#include <string.h> // strdup
+#include <stdlib.h>             // malloc() and free()
 
 // ----------------------------------------------------------------------------
 // Special classes for (wide) character strings: they use malloc/free instead
@@ -24,7 +22,7 @@
 // ----------------------------------------------------------------------------
 
 #define DEFINE_BUFFER(classname, chartype, strdupfunc)                      \
-class classname                                                             \
+class WXDLLIMPEXP_BASE classname                                            \
 {                                                                           \
 public:                                                                     \
     classname(const chartype *str)                                          \
@@ -95,32 +93,11 @@ private:                                                                    \
     chartype *m_str;                                                        \
 }
 
-#ifndef strdup
-inline char *strdup(const char *cs)
-{
-    size_t len = 0;
-    while (cs[len] != 0)
-        len++;
-    const size_t siz = (len + 1)*sizeof(char);
-    char *csCopy = (char *)malloc(siz);
-    memcpy(csCopy, cs, siz);
-    return csCopy;
-}
-#endif
-
-DEFINE_BUFFER(wxCharBuffer, char, strdup);
+DEFINE_BUFFER(wxCharBuffer, char, wxStrdupA);
 
 #if wxUSE_WCHAR_T
 
-inline wchar_t *wxWcsdupReplacement(const wchar_t *wcs)
-{
-    const size_t siz = (wxWcslen(wcs) + 1)*sizeof(wchar_t);
-    wchar_t *wcsCopy = (wchar_t *)malloc(siz);
-    memcpy(wcsCopy, wcs, siz);
-    return wcsCopy;
-}
-
-DEFINE_BUFFER(wxWCharBuffer, wchar_t, wxWcsdupReplacement);
+DEFINE_BUFFER(wxWCharBuffer, wchar_t, wxStrdupW);
 
 #endif // wxUSE_WCHAR_T
 
@@ -195,6 +172,8 @@ private:
 
     // the reference count
     size_t m_ref;
+
+    DECLARE_NO_COPY_CLASS(wxMemoryBufferData)
 };