diff --git a/src/api/embed_helpers.cc b/src/api/embed_helpers.cc index c1bcb3948c4c..391ffe2b334b 100644 --- a/src/api/embed_helpers.cc +++ b/src/api/embed_helpers.cc @@ -317,8 +317,13 @@ void EmbedderSnapshotData::DeleteSnapshotData::operator()( } EmbedderSnapshotData::Pointer EmbedderSnapshotData::BuiltinSnapshotData() { - return EmbedderSnapshotData::Pointer{new EmbedderSnapshotData( - SnapshotBuilder::GetEmbeddedSnapshotData(), false)}; + const SnapshotData* snapshot_data = + SnapshotBuilder::GetEmbeddedSnapshotData(); + if (snapshot_data == nullptr) { + return {}; + } + return EmbedderSnapshotData::Pointer{ + new EmbedderSnapshotData(snapshot_data, false)}; } EmbedderSnapshotData::Pointer EmbedderSnapshotData::FromBlob( diff --git a/src/node.h b/src/node.h index 32a9806ae848..887f2acdee2b 100644 --- a/src/node.h +++ b/src/node.h @@ -492,7 +492,8 @@ class EmbedderSnapshotData { // Return an EmbedderSnapshotData object that refers to the built-in // snapshot of Node.js. This can have been configured through e.g. - // --node-snapshot-main=entry.js. + // --node-snapshot-main=entry.js. If Node.js was built without a built-in + // snapshot, this returns an empty pointer. static Pointer BuiltinSnapshotData(); // Return an EmbedderSnapshotData object that is based on an input file.