diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-05 14:34:32 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-05 14:34:32 -0800 |
commit | 635860845790a19bf50bbc51ba8fb66a96dde068 (patch) | |
tree | ef6ad9ff73a5b57f65249d4232a202fa77e6a140 /WebCore/platform/network/FormData.cpp | |
parent | 8e35f3cfc7fba1d1c829dc557ebad6409cbe16a2 (diff) | |
download | external_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.cpp | 23 |
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) |