summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/sbe/values/slot.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/exec/sbe/values/slot.cpp')
-rw-r--r--src/mongo/db/exec/sbe/values/slot.cpp24
1 files changed, 10 insertions, 14 deletions
diff --git a/src/mongo/db/exec/sbe/values/slot.cpp b/src/mongo/db/exec/sbe/values/slot.cpp
index 2dd622fcecb..cb53de849ac 100644
--- a/src/mongo/db/exec/sbe/values/slot.cpp
+++ b/src/mongo/db/exec/sbe/values/slot.cpp
@@ -271,7 +271,7 @@ static void serializeValue(BufBuilder& buf, TypeTags tag, Value val) {
case TypeTags::StringSmall: {
// Small strings cannot contain null bytes, so it is safe to serialize them as plain
// C-strings with a null terminator.
- buf.appendStr(getStringView(tag, val), true /* includeEndingNull */);
+ buf.appendCStr(getStringView(tag, val));
break;
}
case TypeTags::StringBig:
@@ -279,7 +279,7 @@ static void serializeValue(BufBuilder& buf, TypeTags tag, Value val) {
case TypeTags::bsonSymbol: {
auto sv = getStringOrSymbolView(tag, val);
buf.appendNum(static_cast<uint32_t>(sv.size()));
- buf.appendStr(sv, false /* includeEndingNull */);
+ buf.appendStrBytes(sv);
break;
}
case TypeTags::Array: {
@@ -309,7 +309,7 @@ static void serializeValue(BufBuilder& buf, TypeTags tag, Value val) {
auto obj = getObjectView(val);
buf.appendNum(obj->size());
for (size_t idx = 0; idx < obj->size(); ++idx) {
- buf.appendStr(obj->field(idx), true /* includeEndingNull */);
+ buf.appendCStr(obj->field(idx));
auto [tag, val] = obj->getAt(idx);
serializeValue(buf, tag, val);
}
@@ -352,27 +352,27 @@ static void serializeValue(BufBuilder& buf, TypeTags tag, Value val) {
}
case TypeTags::bsonRegex: {
auto regex = getBsonRegexView(val);
- buf.appendStr(regex.pattern, true /* includeEndingNull */);
- buf.appendStr(regex.flags, true /* includeEndingNull */);
+ buf.appendCStr(regex.pattern);
+ buf.appendCStr(regex.flags);
break;
}
case TypeTags::bsonJavascript: {
auto javascriptCode = getBsonJavascriptView(val);
buf.appendNum(static_cast<uint32_t>(javascriptCode.size()));
- buf.appendStr(javascriptCode, false /* includeEndingNull */);
+ buf.appendStrBytes(javascriptCode);
break;
}
case TypeTags::bsonDBPointer: {
auto dbptr = getBsonDBPointerView(val);
buf.appendNum(static_cast<uint32_t>(dbptr.ns.size()));
- buf.appendStr(dbptr.ns, false /* includeEndingNull */);
+ buf.appendStrBytes(dbptr.ns);
buf.appendBuf(dbptr.id, sizeof(ObjectIdType));
break;
}
case TypeTags::bsonCodeWScope: {
auto cws = getBsonCodeWScopeView(val);
buf.appendNum(static_cast<uint32_t>(cws.code.size()));
- buf.appendStr(cws.code, false /* includeEndingNull */);
+ buf.appendStrBytes(cws.code);
auto scopeLen = ConstDataView(cws.scope).read<LittleEndian<uint32_t>>();
buf.appendBuf(cws.scope, scopeLen);
break;
@@ -507,9 +507,10 @@ static void serializeValueIntoKeyString(KeyString::Builder& buf,
}
break;
}
+ case TypeTags::bsonObjectId:
case TypeTags::ObjectId: {
buf.appendBool(true);
- buf.appendBytes(getObjectIdView(val), sizeof(ObjectIdType));
+ buf.appendOID(OID::from(getRawPointerView(val)));
break;
}
case TypeTags::bsonObject: {
@@ -532,11 +533,6 @@ static void serializeValueIntoKeyString(KeyString::Builder& buf,
}
break;
}
- case TypeTags::bsonObjectId: {
- buf.appendBool(true);
- buf.appendOID(OID::from(getRawPointerView(val)));
- break;
- }
case TypeTags::bsonBinData: {
BufBuilder innerBinDataBuf;
innerBinDataBuf.appendUChar(static_cast<uint8_t>(tag));