5
5
#include < stdio.h>
6
6
#include < stdlib.h>
7
7
#include < string.h>
8
- #include < memory>
9
8
10
9
#include " include/bin/dart_io_api.h"
11
10
#include " include/dart_api.h"
@@ -214,7 +213,7 @@ static Dart_Isolate IsolateSetupHelper(Dart_Isolate isolate,
214
213
#if !defined(DART_PRECOMPILED_RUNTIME)
215
214
IsolateData* isolate_data =
216
215
reinterpret_cast <IsolateData*>(Dart_IsolateData (isolate));
217
- const uint8_t * kernel_buffer = isolate_data->kernel_buffer (). get () ;
216
+ const uint8_t * kernel_buffer = isolate_data->kernel_buffer ();
218
217
intptr_t kernel_buffer_size = isolate_data->kernel_buffer_size ();
219
218
#endif
220
219
@@ -275,8 +274,9 @@ static Dart_Isolate IsolateSetupHelper(Dart_Isolate isolate,
275
274
Dart_ShutdownIsolate ();
276
275
return NULL ;
277
276
}
278
- isolate_data->SetKernelBufferNewlyOwned (application_kernel_buffer,
279
- application_kernel_buffer_size);
277
+ isolate_data->set_kernel_buffer (application_kernel_buffer,
278
+ application_kernel_buffer_size,
279
+ true /* take ownership*/ );
280
280
kernel_buffer = application_kernel_buffer;
281
281
kernel_buffer_size = application_kernel_buffer_size;
282
282
}
@@ -433,9 +433,9 @@ static Dart_Isolate CreateAndSetupKernelIsolate(const char* script_uri,
433
433
dfe.LoadKernelService (&kernel_service_buffer, &kernel_service_buffer_size);
434
434
ASSERT (kernel_service_buffer != NULL );
435
435
isolate_data = new IsolateData (uri, package_root, packages_config, NULL );
436
- isolate_data->SetKernelBufferUnowned (
437
- const_cast < uint8_t *>(kernel_service_buffer) ,
438
- kernel_service_buffer_size );
436
+ isolate_data->set_kernel_buffer ( const_cast < uint8_t *>(kernel_service_buffer),
437
+ kernel_service_buffer_size ,
438
+ false /* take_ownership */ );
439
439
isolate = Dart_CreateIsolateFromKernel (
440
440
DART_KERNEL_ISOLATE_NAME, main, kernel_service_buffer,
441
441
kernel_service_buffer_size, flags, isolate_data, error);
@@ -527,13 +527,11 @@ static Dart_Isolate CreateIsolateAndSetupHelper(bool is_main_isolate,
527
527
const char * package_root,
528
528
const char * packages_config,
529
529
Dart_IsolateFlags* flags,
530
- void * callback_data,
531
530
char ** error,
532
531
int * exit_code) {
533
532
int64_t start = Dart_TimelineGetMicros ();
534
533
ASSERT (script_uri != NULL );
535
534
uint8_t * kernel_buffer = NULL ;
536
- std::shared_ptr<uint8_t > parent_kernel_buffer;
537
535
intptr_t kernel_buffer_size = 0 ;
538
536
AppSnapshot* app_snapshot = NULL ;
539
537
@@ -567,30 +565,16 @@ static Dart_Isolate CreateIsolateAndSetupHelper(bool is_main_isolate,
567
565
&isolate_snapshot_data, &isolate_snapshot_instructions);
568
566
}
569
567
}
570
-
571
- if (flags->copy_parent_code && callback_data) {
572
- IsolateData* parent_isolate_data =
573
- reinterpret_cast <IsolateData*>(callback_data);
574
- parent_kernel_buffer = parent_isolate_data->kernel_buffer ();
575
- kernel_buffer = parent_kernel_buffer.get ();
576
- kernel_buffer_size = parent_isolate_data->kernel_buffer_size ();
577
- }
578
-
579
- if (kernel_buffer == NULL && !isolate_run_app_snapshot) {
568
+ if (!isolate_run_app_snapshot) {
580
569
dfe.ReadScript (script_uri, &kernel_buffer, &kernel_buffer_size);
581
570
}
582
571
#endif // !defined(DART_PRECOMPILED_RUNTIME)
583
572
584
573
IsolateData* isolate_data =
585
574
new IsolateData (script_uri, package_root, packages_config, app_snapshot);
586
575
if (kernel_buffer != NULL ) {
587
- if (parent_kernel_buffer) {
588
- isolate_data->SetKernelBufferAlreadyOwned (std::move (parent_kernel_buffer),
589
- kernel_buffer_size);
590
- } else {
591
- isolate_data->SetKernelBufferNewlyOwned (kernel_buffer,
592
- kernel_buffer_size);
593
- }
576
+ isolate_data->set_kernel_buffer (kernel_buffer, kernel_buffer_size,
577
+ true /* take ownership*/ );
594
578
}
595
579
if (is_main_isolate && (Options::depfile () != NULL )) {
596
580
isolate_data->set_dependencies (new MallocGrowableArray<char *>());
@@ -656,7 +640,7 @@ static Dart_Isolate CreateIsolateAndSetup(const char* script_uri,
656
640
const char * package_root,
657
641
const char * package_config,
658
642
Dart_IsolateFlags* flags,
659
- void * callback_data ,
643
+ void * data ,
660
644
char ** error) {
661
645
// The VM should never call the isolate helper with a NULL flags.
662
646
ASSERT (flags != NULL );
@@ -683,8 +667,8 @@ static Dart_Isolate CreateIsolateAndSetup(const char* script_uri,
683
667
}
684
668
bool is_main_isolate = false ;
685
669
return CreateIsolateAndSetupHelper (is_main_isolate, script_uri, main,
686
- package_root, package_config, flags,
687
- callback_data, error, &exit_code);
670
+ package_root, package_config, flags, error,
671
+ &exit_code);
688
672
}
689
673
690
674
char * BuildIsolateName (const char * script_name, const char * func_name) {
@@ -818,8 +802,7 @@ bool RunMainIsolate(const char* script_name, CommandLineOptions* dart_options) {
818
802
819
803
Dart_Isolate isolate = CreateIsolateAndSetupHelper (
820
804
is_main_isolate, script_name, " main" , Options::package_root (),
821
- Options::packages_file (), &flags, NULL /* callback_data */ , &error,
822
- &exit_code);
805
+ Options::packages_file (), &flags, &error, &exit_code);
823
806
824
807
if (isolate == NULL ) {
825
808
delete[] isolate_name;
0 commit comments