void ArgumentCoder<String>::encode(ArgumentEncoder& encoder, const String& string) { // Special case the null string. if (string.isNull()) { encoder << std::numeric_limits<uint32_t>::max(); return; } uint32_t length = string.length(); bool is8Bit = string.is8Bit(); encoder << length << is8Bit; if (is8Bit) encoder.encodeFixedLengthData(reinterpret_cast<const uint8_t*>(string.characters8()), length * sizeof(LChar), alignof(LChar)); else encoder.encodeFixedLengthData(reinterpret_cast<const uint8_t*>(string.characters16()), length * sizeof(UChar), alignof(UChar)); }
void ArgumentCoder<CString>::encode(ArgumentEncoder& encoder, const CString& string) { // Special case the null string. if (string.isNull()) { encoder << std::numeric_limits<uint32_t>::max(); return; } uint32_t length = string.length(); encoder << length; encoder.encodeFixedLengthData(reinterpret_cast<const uint8_t*>(string.data()), length, 1); }