summaryrefslogtreecommitdiffstats
path: root/dom/base/nsContentUtils.cpp
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@gmail.com>2018-02-07 11:13:44 +0100
committerwolfbeast <mcwerewolf@gmail.com>2018-02-07 11:13:44 +0100
commit4470f78754246bbd134b65cad2e0a9638418677f (patch)
tree1a7c05e68edd287d1996da1a9610b33525d53a92 /dom/base/nsContentUtils.cpp
parent7686bceecff17f91758c8c6547a78e71ff3a8c38 (diff)
downloadUXP-4470f78754246bbd134b65cad2e0a9638418677f.tar
UXP-4470f78754246bbd134b65cad2e0a9638418677f.tar.gz
UXP-4470f78754246bbd134b65cad2e0a9638418677f.tar.lz
UXP-4470f78754246bbd134b65cad2e0a9638418677f.tar.xz
UXP-4470f78754246bbd134b65cad2e0a9638418677f.zip
Avoid unnecessary string creation.
Diffstat (limited to 'dom/base/nsContentUtils.cpp')
-rw-r--r--dom/base/nsContentUtils.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/dom/base/nsContentUtils.cpp b/dom/base/nsContentUtils.cpp
index 29d28f8ce..321a61f18 100644
--- a/dom/base/nsContentUtils.cpp
+++ b/dom/base/nsContentUtils.cpp
@@ -4128,9 +4128,15 @@ nsContentUtils::GetSubdocumentWithOuterWindowId(nsIDocument *aDocument,
/* static */
nsresult
nsContentUtils::ConvertStringFromEncoding(const nsACString& aEncoding,
- const nsACString& aInput,
+ const char* aInput,
+ uint32_t aInputLen,
nsAString& aOutput)
{
+ CheckedInt32 len = aInputLen;
+ if (!len.isValid()) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
+
nsAutoCString encoding;
if (aEncoding.IsEmpty()) {
encoding.AssignLiteral("UTF-8");
@@ -4142,7 +4148,7 @@ nsContentUtils::ConvertStringFromEncoding(const nsACString& aEncoding,
nsAutoPtr<TextDecoder> decoder(new TextDecoder());
decoder->InitWithEncoding(encoding, false);
- decoder->Decode(aInput.BeginReading(), aInput.Length(), false,
+ decoder->Decode(aInput, len.value(), false,,
aOutput, rv);
return rv.StealNSResult();
}