summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/network/FormData.cpp
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-05 14:34:32 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-05 14:34:32 -0800
commit635860845790a19bf50bbc51ba8fb66a96dde068 (patch)
treeef6ad9ff73a5b57f65249d4232a202fa77e6a140 /WebCore/platform/network/FormData.cpp
parent8e35f3cfc7fba1d1c829dc557ebad6409cbe16a2 (diff)
downloadexternal_webkit-635860845790a19bf50bbc51ba8fb66a96dde068.zip
external_webkit-635860845790a19bf50bbc51ba8fb66a96dde068.tar.gz
external_webkit-635860845790a19bf50bbc51ba8fb66a96dde068.tar.bz2
auto import from //depot/cupcake/@136594
Diffstat (limited to 'WebCore/platform/network/FormData.cpp')
-rw-r--r--WebCore/platform/network/FormData.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/WebCore/platform/network/FormData.cpp b/WebCore/platform/network/FormData.cpp
index 0d31856..3cac168 100644
--- a/WebCore/platform/network/FormData.cpp
+++ b/WebCore/platform/network/FormData.cpp
@@ -1,5 +1,6 @@
/*
* Copyright (C) 2004, 2006, 2008 Apple Inc. All rights reserved.
+ * Copyright (C) 2009 Google Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -90,6 +91,28 @@ PassRefPtr<FormData> FormData::copy() const
return adoptRef(new FormData(*this));
}
+PassRefPtr<FormData> FormData::deepCopy() const
+{
+ RefPtr<FormData> formData(create());
+
+ formData->m_alwaysStream = m_alwaysStream;
+
+ size_t n = m_elements.size();
+ formData->m_elements.reserveCapacity(n);
+ for (size_t i = 0; i < n; ++i) {
+ const FormDataElement& e = m_elements[i];
+ switch (e.m_type) {
+ case FormDataElement::data:
+ formData->m_elements.append(FormDataElement(e.m_data));
+ break;
+ case FormDataElement::encodedFile:
+ formData->m_elements.append(FormDataElement(e.m_filename, e.m_shouldGenerateFile));
+ break;
+ }
+ }
+ return formData.release();
+}
+
void FormData::appendData(const void* data, size_t size)
{
if (m_elements.isEmpty() || m_elements.last().m_type != FormDataElement::data)