summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/sbe/values/bson.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/exec/sbe/values/bson.cpp')
-rw-r--r--src/mongo/db/exec/sbe/values/bson.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/mongo/db/exec/sbe/values/bson.cpp b/src/mongo/db/exec/sbe/values/bson.cpp
index 6a67127bd6f..ea5f50b7e58 100644
--- a/src/mongo/db/exec/sbe/values/bson.cpp
+++ b/src/mongo/db/exec/sbe/values/bson.cpp
@@ -290,7 +290,8 @@ void convertToBsonObj(ArrayBuilder& builder, value::ArrayEnumerator arr) {
case value::TypeTags::StringSmall:
case value::TypeTags::StringBig:
case value::TypeTags::bsonString: {
- builder.append(value::getStringView(tag, val));
+ auto sv = value::getStringView(tag, val);
+ builder.append(StringData{sv.data(), sv.size()});
break;
}
case value::TypeTags::Array: {
@@ -384,9 +385,11 @@ template void convertToBsonObj<UniqueBSONObjBuilder>(UniqueBSONObjBuilder& build
template <class ObjBuilder>
void appendValueToBsonObj(ObjBuilder& builder,
- StringData name,
+ std::string_view nameSV,
value::TypeTags tag,
value::Value val) {
+ StringData name{nameSV.data(), nameSV.size()};
+
switch (tag) {
case value::TypeTags::Nothing:
break;
@@ -418,7 +421,8 @@ void appendValueToBsonObj(ObjBuilder& builder,
case value::TypeTags::StringSmall:
case value::TypeTags::StringBig:
case value::TypeTags::bsonString: {
- builder.append(name, value::getStringView(tag, val));
+ auto sv = value::getStringView(tag, val);
+ builder.append(name, StringData{sv.data(), sv.size()});
break;
}
case value::TypeTags::Array: {
@@ -481,11 +485,11 @@ void appendValueToBsonObj(ObjBuilder& builder,
}
template void appendValueToBsonObj<BSONObjBuilder>(BSONObjBuilder& builder,
- StringData name,
+ std::string_view name,
value::TypeTags tag,
value::Value val);
template void appendValueToBsonObj<UniqueBSONObjBuilder>(UniqueBSONObjBuilder& builder,
- StringData name,
+ std::string_view name,
value::TypeTags tag,
value::Value val);
} // namespace bson