Index: Source/modules/encoding/TextEncoder.cpp |
diff --git a/Source/modules/encoding/TextEncoder.cpp b/Source/modules/encoding/TextEncoder.cpp |
index b1d2be1afa8e37e9920bf1c661c44c5ea636e398..a669e0272d11dec6c3a1ad3e3f6a4def86744287 100644 |
--- a/Source/modules/encoding/TextEncoder.cpp |
+++ b/Source/modules/encoding/TextEncoder.cpp |
@@ -84,10 +84,12 @@ PassRefPtr<Uint8Array> TextEncoder::encode(const String& input, const Dictionary |
// handle split surrogates here. |
CString result; |
- if (input.is8Bit()) |
- result = m_codec->encode(input.characters8(), input.length(), WTF::QuestionMarksForUnencodables); |
- else |
- result = m_codec->encode(input.characters16(), input.length(), WTF::QuestionMarksForUnencodables); |
+ if (!input.isNull()) { |
+ if (input.is8Bit()) |
+ result = m_codec->encode(input.characters8(), input.length(), WTF::QuestionMarksForUnencodables); |
+ else |
+ result = m_codec->encode(input.characters16(), input.length(), WTF::QuestionMarksForUnencodables); |
+ } |
const char* buffer = result.data(); |
const unsigned char* unsignedBuffer = reinterpret_cast<const unsigned char*>(buffer); |