Index: runtime/bin/gen_snapshot.cc |
diff --git a/runtime/bin/gen_snapshot.cc b/runtime/bin/gen_snapshot.cc |
index 53babb7c9ae823aa44e9bbe500a8ebba655c5cc2..4817a7a7cc9408a3c32e620c0f724bb2d961fc71 100644 |
--- a/runtime/bin/gen_snapshot.cc |
+++ b/runtime/bin/gen_snapshot.cc |
@@ -1270,9 +1270,16 @@ int main(int argc, char** argv) { |
intptr_t kernel_length = 0; |
const bool is_kernel_file = |
TryReadKernel(app_script_name, &kernel, &kernel_length); |
+ |
+ void* kernel_program = NULL; |
+ if (is_kernel_file) { |
+ kernel_program = Dart_ParseKernelBinary(kernel, kernel_length); |
+ free(const_cast<uint8_t*>(kernel)); |
+ } |
+ |
Dart_Isolate isolate = |
is_kernel_file |
- ? Dart_CreateIsolateFromKernel(NULL, NULL, kernel, kernel_length, |
+ ? Dart_CreateIsolateFromKernel(NULL, NULL, kernel_program, |
NULL, isolate_data, &error) |
: Dart_CreateIsolate(NULL, NULL, NULL, NULL, isolate_data, &error); |
if (isolate == NULL) { |
@@ -1293,8 +1300,7 @@ int main(int argc, char** argv) { |
ParseEntryPointsManifestIfPresent(); |
if (is_kernel_file) { |
- Dart_Handle library = Dart_LoadKernel(kernel, kernel_length); |
- free(const_cast<uint8_t*>(kernel)); |
+ Dart_Handle library = Dart_LoadKernel(kernel_program); |
if (Dart_IsError(library)) FATAL("Failed to load app from Kernel IR"); |
} else { |
// Set up the library tag handler in such a manner that it will use the |