summaryrefslogtreecommitdiff
path: root/src/mongo/db/exec/sbe/stages/makeobj.h
diff options
context:
space:
mode:
authorMartin Neupauer <xmaton@messengeruser.com>2021-04-21 09:38:49 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-04-29 21:49:53 +0000
commita1dd77a37ab054564904ce8d0f04dacca04a9d2a (patch)
tree04cfe21a3419c9bf0d3a101be27fe326db0a8342 /src/mongo/db/exec/sbe/stages/makeobj.h
parent7fe73c9955e44c7e99c5c3487454bb2ad64740e1 (diff)
downloadmongo-a1dd77a37ab054564904ce8d0f04dacca04a9d2a.tar.gz
SERVER-55498 Prevent SBE from using unowned values from storage after
yield This change ensures that accesors produce valid values after yield.
Diffstat (limited to 'src/mongo/db/exec/sbe/stages/makeobj.h')
-rw-r--r--src/mongo/db/exec/sbe/stages/makeobj.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/mongo/db/exec/sbe/stages/makeobj.h b/src/mongo/db/exec/sbe/stages/makeobj.h
index 10dd950bcf6..9901ad17744 100644
--- a/src/mongo/db/exec/sbe/stages/makeobj.h
+++ b/src/mongo/db/exec/sbe/stages/makeobj.h
@@ -91,6 +91,9 @@ public:
const SpecificStats* getSpecificStats() const final;
std::vector<DebugPrinter::Block> debugPrint() const final;
+protected:
+ void doSaveState() final;
+
private:
void projectField(value::Object* obj, size_t idx);
void projectField(UniqueBSONObjBuilder* bob, size_t idx);