99#include " flutter/fml/native_library.h"
1010#include " flutter/fml/paths.h"
1111#include " flutter/fml/trace_event.h"
12+ #include " flutter/lib/snapshot/snapshot.h"
1213#include " flutter/runtime/dart_snapshot_buffer.h"
1314#include " flutter/runtime/dart_vm.h"
1415
@@ -20,8 +21,7 @@ const char* DartSnapshot::kIsolateDataSymbol = "kDartIsolateSnapshotData";
2021const char * DartSnapshot::kIsolateInstructionsSymbol =
2122 " kDartIsolateSnapshotInstructions" ;
2223
23- static std::unique_ptr<DartSnapshotBuffer> ResolveVMData (
24- const Settings& settings) {
24+ std::unique_ptr<DartSnapshotBuffer> ResolveVMData (const Settings& settings) {
2525 if (settings.aot_snapshot_path .size () > 0 ) {
2626 auto path = fml::paths::JoinPaths (
2727 {settings.aot_snapshot_path , settings.aot_vm_snapshot_data_filename });
@@ -36,7 +36,7 @@ static std::unique_ptr<DartSnapshotBuffer> ResolveVMData(
3636 loaded_process, DartSnapshot::kVMDataSymbol );
3737}
3838
39- static std::unique_ptr<DartSnapshotBuffer> ResolveVMInstructions (
39+ std::unique_ptr<DartSnapshotBuffer> ResolveVMInstructions (
4040 const Settings& settings) {
4141 if (settings.aot_snapshot_path .size () > 0 ) {
4242 auto path = fml::paths::JoinPaths (
@@ -61,7 +61,7 @@ static std::unique_ptr<DartSnapshotBuffer> ResolveVMInstructions(
6161 loaded_process, DartSnapshot::kVMInstructionsSymbol );
6262}
6363
64- static std::unique_ptr<DartSnapshotBuffer> ResolveIsolateData (
64+ std::unique_ptr<DartSnapshotBuffer> ResolveIsolateData (
6565 const Settings& settings) {
6666 if (settings.aot_snapshot_path .size () > 0 ) {
6767 auto path =
@@ -78,7 +78,7 @@ static std::unique_ptr<DartSnapshotBuffer> ResolveIsolateData(
7878 loaded_process, DartSnapshot::kIsolateDataSymbol );
7979}
8080
81- static std::unique_ptr<DartSnapshotBuffer> ResolveIsolateInstructions (
81+ std::unique_ptr<DartSnapshotBuffer> ResolveIsolateInstructions (
8282 const Settings& settings) {
8383 if (settings.aot_snapshot_path .size () > 0 ) {
8484 auto path =
@@ -107,6 +107,12 @@ static std::unique_ptr<DartSnapshotBuffer> ResolveIsolateInstructions(
107107fxl::RefPtr<DartSnapshot> DartSnapshot::VMSnapshotFromSettings (
108108 const Settings& settings) {
109109 TRACE_EVENT0 (" flutter" , " DartSnapshot::VMSnapshotFromSettings" );
110+ #if OS_WIN
111+ return fxl::MakeRefCounted<DartSnapshot>(
112+ DartSnapshotBuffer::CreateWithUnmanagedAllocation (kDartVmSnapshotData ),
113+ DartSnapshotBuffer::CreateWithUnmanagedAllocation (
114+ kDartVmSnapshotInstructions ));
115+ #else // OS_WIN
110116 auto snapshot =
111117 fxl::MakeRefCounted<DartSnapshot>(ResolveVMData (settings), //
112118 ResolveVMInstructions (settings) //
@@ -115,11 +121,19 @@ fxl::RefPtr<DartSnapshot> DartSnapshot::VMSnapshotFromSettings(
115121 return snapshot;
116122 }
117123 return nullptr ;
124+ #endif // OS_WIN
118125}
119126
120127fxl::RefPtr<DartSnapshot> DartSnapshot::IsolateSnapshotFromSettings (
121128 const Settings& settings) {
122129 TRACE_EVENT0 (" flutter" , " DartSnapshot::IsolateSnapshotFromSettings" );
130+ #if OS_WIN
131+ return fxl::MakeRefCounted<DartSnapshot>(
132+ DartSnapshotBuffer::CreateWithUnmanagedAllocation (
133+ kDartIsolateSnapshotData ),
134+ DartSnapshotBuffer::CreateWithUnmanagedAllocation (
135+ kDartIsolateSnapshotInstructions ));
136+ #else // OS_WIN
123137 auto snapshot =
124138 fxl::MakeRefCounted<DartSnapshot>(ResolveIsolateData (settings), //
125139 ResolveIsolateInstructions (settings) //
@@ -128,6 +142,7 @@ fxl::RefPtr<DartSnapshot> DartSnapshot::IsolateSnapshotFromSettings(
128142 return snapshot;
129143 }
130144 return nullptr ;
145+ #endif
131146}
132147
133148DartSnapshot::DartSnapshot (std::unique_ptr<DartSnapshotBuffer> data,
0 commit comments