OSDN Git Service

Merge webkit.org at R49305 : Update String::copy call sites to use new copy method.
authorSteve Block <steveblock@google.com>
Fri, 9 Oct 2009 16:07:41 +0000 (17:07 +0100)
committerSteve Block <steveblock@google.com>
Mon, 19 Oct 2009 23:45:05 +0000 (00:45 +0100)
See http://trac.webkit.org/changeset/49160

Change-Id: I75e1d6701f4d16fab7513f5924abf00e958e865c

WebCore/platform/android/FileChooserAndroid.cpp
WebKit/android/nav/CacheBuilder.cpp

index d54c809..c293e66 100644 (file)
@@ -36,7 +36,9 @@ String FileChooser::basenameForWidth(const Font& font, int width) const
         return String();
     // FIXME: This could be a lot faster, but assuming the data will not
     // often be much longer than the provided width, this may be fast enough.
-    String output = m_filenames[0].copy();
+    // If this does not need to be threadsafe, we can use crossThreadString().
+    // See http://trac.webkit.org/changeset/49160.
+    String output = m_filenames[0].threadsafeCopy();
     while (font.width(TextRun(output.impl())) > width && output.length() > 4) {
         output = output.replace(0, 4, String("..."));
     }
@@ -58,4 +60,3 @@ String fileButtonNoFileSelectedLabel()
 }
 
 } // namesapce WebCore
-
index 80965d2..72dad07 100644 (file)
@@ -1106,7 +1106,9 @@ void CacheBuilder::BuildFrame(Frame* root, Frame* frame,
             }
             isPassword = input->inputType() == HTMLInputElement::PASSWORD;
             maxLength = input->maxLength();
-            name = input->name().string().copy();
+            // If this does not need to be threadsafe, we can use crossThreadString().
+            // See http://trac.webkit.org/changeset/49160.
+            name = input->name().string().threadsafeCopy();
             isUnclipped = isTransparent; // can't detect if this is drawn on top (example: deviant.com login parts)
         } else if (node->hasTagName(HTMLNames::textareaTag)) {
             isTextArea = wantsKeyEvents = true;
@@ -1123,14 +1125,14 @@ void CacheBuilder::BuildFrame(Frame* root, Frame* frame,
             KURL href = anchorNode->href();
             if (!href.isEmpty() && !WebCore::protocolIsJavaScript(href.string()))
                 // Set the exported string for all non-javascript anchors.
-                exported = href.string().copy();
+                exported = href.string().threadsafeCopy();
         }
         if (isTextField || isTextArea) {
             RenderTextControl* renderText = 
                 static_cast<RenderTextControl*>(nodeRenderer);
             if (isFocus)
                 cachedRoot->setSelection(renderText->selectionStart(), renderText->selectionEnd());
-            exported = renderText->text().copy();
+            exported = renderText->text().threadsafeCopy();
             // FIXME: Would it be better to use (float) size()?
             // FIXME: Are we sure there will always be a style and font, and it's correct?
             RenderStyle* style = nodeRenderer->style();