Index: Source/core/xml/XMLHttpRequest.cpp |
diff --git a/Source/core/xml/XMLHttpRequest.cpp b/Source/core/xml/XMLHttpRequest.cpp |
index 8f79ae23e200a7f857446141a0080229e8481d83..e0b75f2cde862278b550668973b4dbce1d7672fe 100644 |
--- a/Source/core/xml/XMLHttpRequest.cpp |
+++ b/Source/core/xml/XMLHttpRequest.cpp |
@@ -214,13 +214,13 @@ XMLHttpRequest::State XMLHttpRequest::readyState() const |
return m_state; |
} |
-String XMLHttpRequest::responseText(ExceptionCode& ec) |
+ScriptString XMLHttpRequest::responseText(ExceptionCode& ec) |
{ |
if (m_responseTypeCode != ResponseTypeDefault && m_responseTypeCode != ResponseTypeText) { |
ec = INVALID_STATE_ERR; |
- return ""; |
+ return ScriptString(); |
} |
- return m_responseBuilder.toStringPreserveCapacity(); |
+ return m_responseText; |
} |
Document* XMLHttpRequest::responseXML(ExceptionCode& ec) |
@@ -248,7 +248,7 @@ Document* XMLHttpRequest::responseXML(ExceptionCode& ec) |
else |
m_responseDocument = Document::create(0, m_url); |
// FIXME: Set Last-Modified. |
- m_responseDocument->setContent(m_responseBuilder.toStringPreserveCapacity()); |
+ m_responseDocument->setContent(m_responseText.flattenToString()); |
m_responseDocument->setSecurityOrigin(securityOrigin()); |
m_responseDocument->setContextFeatures(document()->contextFeatures()); |
if (!m_responseDocument->wellFormed()) |
@@ -846,7 +846,7 @@ void XMLHttpRequest::clearResponse() |
void XMLHttpRequest::clearResponseBuffers() |
{ |
- m_responseBuilder.clear(); |
+ m_responseText.clear(); |
m_createdDocument = false; |
m_responseDocument = 0; |
m_responseBlob = 0; |
@@ -1092,11 +1092,9 @@ void XMLHttpRequest::didFinishLoading(unsigned long identifier, double) |
changeState(HEADERS_RECEIVED); |
if (m_decoder) |
- m_responseBuilder.append(m_decoder->flush()); |
- |
- m_responseBuilder.shrinkToFit(); |
+ m_responseText = m_responseText.concatenateWith(m_decoder->flush()); |
- InspectorInstrumentation::didFinishXHRLoading(scriptExecutionContext(), this, identifier, m_responseBuilder.toStringPreserveCapacity(), m_url, m_lastSendURL, m_lastSendLineNumber); |
+ InspectorInstrumentation::didFinishXHRLoading(scriptExecutionContext(), this, identifier, m_responseText, m_url, m_lastSendURL, m_lastSendLineNumber); |
bool hadLoader = m_loader; |
m_loader = 0; |
@@ -1168,7 +1166,7 @@ void XMLHttpRequest::didReceiveData(const char* data, int len) |
len = strlen(data); |
if (useDecoder) |
- m_responseBuilder.append(m_decoder->decode(data, len)); |
+ m_responseText = m_responseText.concatenateWith(m_decoder->decode(data, len)); |
else if (m_responseTypeCode == ResponseTypeArrayBuffer || m_responseTypeCode == ResponseTypeBlob) { |
// Buffer binary data. |
if (!m_binaryResponseBuilder) |
@@ -1286,7 +1284,7 @@ void XMLHttpRequest::reportMemoryUsage(MemoryObjectInfo* memoryObjectInfo) const |
info.addMember(m_response, "response"); |
info.addMember(m_responseEncoding, "responseEncoding"); |
info.addMember(m_decoder, "decoder"); |
- info.addMember(m_responseBuilder, "responseBuilder"); |
+ info.addMember(m_responseText, "responseText"); |
info.addMember(m_responseDocument, "responseDocument"); |
info.addMember(m_binaryResponseBuilder, "binaryResponseBuilder"); |
info.addMember(m_responseArrayBuffer, "responseArrayBuffer"); |