From 275dea4672e6f9376325e1e59ca6db9ff289b11d Mon Sep 17 00:00:00 2001
From: Vadim Zeitlin <vadim@wxwidgets.org>
Date: Fri, 22 Mar 2002 19:15:13 +0000
Subject: [PATCH] avoid an assert in wxString::GetWriteBuf()

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14727 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 src/msw/regconf.cpp | 27 +++++++++++++++------------
 1 file changed, 15 insertions(+), 12 deletions(-)

diff --git a/src/msw/regconf.cpp b/src/msw/regconf.cpp
index c63a563d6a..6494b321f7 100644
--- a/src/msw/regconf.cpp
+++ b/src/msw/regconf.cpp
@@ -350,21 +350,24 @@ void wxRegConfig::SetPath(const wxString& strPath)
 
     // registry APIs want backslashes instead of slashes
     wxString strRegPath;
-    size_t len = m_strPath.length();
+    if ( !m_strPath.empty() )
+    {
+        size_t len = m_strPath.length();
 
-    const wxChar *src = m_strPath.c_str();
-    wxChar *dst = strRegPath.GetWriteBuf(len);
+        const wxChar *src = m_strPath.c_str();
+        wxChar *dst = strRegPath.GetWriteBuf(len);
 
-    const wxChar *end = src + len;
-    for ( ; src < end; src++, dst++ )
-    {
-        if ( *src == wxCONFIG_PATH_SEPARATOR )
-            *dst = _T('\\');
-        else
-            *dst = *src;
-    }
+        const wxChar *end = src + len;
+        for ( ; src < end; src++, dst++ )
+        {
+            if ( *src == wxCONFIG_PATH_SEPARATOR )
+                *dst = _T('\\');
+            else
+                *dst = *src;
+        }
 
-    strRegPath.UngetWriteBuf(len);
+        strRegPath.UngetWriteBuf(len);
+    }
 
     // this is not needed any longer as we don't create keys unnecessarily any
     // more (now it is done on demand, i.e. only when they're going to contain
-- 
2.47.2