Reviewed by Maciej.
authorbeidson <beidson@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 13 Jun 2006 06:10:56 +0000 (06:10 +0000)
committerbeidson <beidson@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 13 Jun 2006 06:10:56 +0000 (06:10 +0000)
        Fixed a bug in append(char) and append(UChar) where our intended copy-on-write semantics was ignored!

        * platform/String.cpp:
        (WebCore::String::append):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@14835 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/platform/String.cpp

index 353658b6db6631f6bab1164de223cedcd0068d42..c9779b33b9d187f4422d08750cc34c7f5f50c652 100644 (file)
@@ -1,3 +1,12 @@
+2006-06-12  Brady Eidson  <beidson@apple.com>
+
+        Reviewed by Maciej.
+
+        Fixed a bug in append(char) and append(UChar) where our intended copy-on-write semantics was ignored!
+
+        * platform/String.cpp:
+        (WebCore::String::append):
+
 2006-06-12  Geoffrey Garen  <ggaren@apple.com>
 
         Reviewed by TimO, Maciej.
index df0ba059fa11537ed1d5c093a45f87b31a09357f..8c12bf351525da893e8fbf4ee830f3f7274f69e8 100644 (file)
@@ -110,16 +110,20 @@ void String::append(char c)
 {
     if (!m_impl)
         m_impl = new StringImpl(&c, 1);
-    else 
+    else {
+        m_impl = m_impl->copy();
         m_impl->append(c);
+    }
 }
 
 void String::append(UChar c)
 {
     if (!m_impl)
         m_impl = new StringImpl(&c, 1);
-    else
+    else {
+        m_impl = m_impl->copy();
         m_impl->append(c);
+    }
 }
 
 String operator+(const String& a, const String& b)