blob: 3e479090884a10b95df41f75ef08e1f6bbca4eeb [file] [log] [blame]
diff --git a/runtime/dart_isolate.cc b/runtime/dart_isolate.cc
index 96ac6facd..b649ca834 100644
--- a/runtime/dart_isolate.cc
+++ b/runtime/dart_isolate.cc
@@ -163,7 +163,7 @@ bool DartIsolate::Initialize(Dart_Isolate dart_isolate, bool is_root_isolate) {
}
auto* isolate_data = static_cast<std::shared_ptr<DartIsolate>*>(
- Dart_IsolateData(dart_isolate));
+ Dart_IsolateGroupData(dart_isolate));
if (isolate_data->get() != this) {
return false;
}
@@ -174,7 +174,7 @@ bool DartIsolate::Initialize(Dart_Isolate dart_isolate, bool is_root_isolate) {
// We are entering a new scope (for the first time since initialization) and
// we want to restore the current scope to null when we exit out of this
// method. This balances the implicit Dart_EnterIsolate call made by
- // Dart_CreateIsolate (which calls the Initialize).
+ // Dart_CreateIsolateGroup (which calls the Initialize).
Dart_ExitIsolate();
tonic::DartIsolateScope scope(isolate());
@@ -636,8 +636,8 @@ Dart_Isolate DartIsolate::DartCreateAndStartServiceIsolate(
return service_isolate->isolate();
}
-// |Dart_IsolateCreateCallback|
-Dart_Isolate DartIsolate::DartIsolateCreateCallback(
+// |Dart_IsolateGroupCreateCallback|
+Dart_Isolate DartIsolate::DartIsolateGroupCreateCallback(
const char* advisory_script_uri,
const char* advisory_script_entrypoint,
const char* package_root,
@@ -720,14 +720,16 @@ DartIsolate::CreateDartVMAndEmbedderObjectPair(
}
// Create the Dart VM isolate and give it the embedder object as the baton.
- Dart_Isolate isolate = Dart_CreateIsolate(
+ Dart_Isolate isolate = Dart_CreateIsolateGroup(
advisory_script_uri, //
advisory_script_entrypoint, //
(*embedder_isolate)->GetIsolateSnapshot()->GetDataMapping(),
(*embedder_isolate)->GetIsolateSnapshot()->GetInstructionsMapping(),
(*embedder_isolate)->GetSharedSnapshot()->GetDataMapping(),
(*embedder_isolate)->GetSharedSnapshot()->GetInstructionsMapping(), flags,
- embedder_isolate.get(), error);
+ embedder_isolate.get(), // isolate_group_data
+ embedder_isolate.get(), // isolate_data
+ error);
if (isolate == nullptr) {
FML_DLOG(ERROR) << *error;
@@ -775,10 +777,10 @@ void DartIsolate::DartIsolateShutdownCallback(
isolate_group_data->get()->OnShutdownCallback();
}
-// |Dart_IsolateCleanupCallback|
-void DartIsolate::DartIsolateCleanupCallback(
- std::shared_ptr<DartIsolate>* isolate_data) {
- delete isolate_data;
+// |Dart_IsolateGroupCleanupCallback|
+void DartIsolate::DartIsolateGroupCleanupCallback(
+ std::shared_ptr<DartIsolate>* isolate_group_data) {
+ delete isolate_group_data;
}
fml::RefPtr<const DartSnapshot> DartIsolate::GetIsolateSnapshot() const {
diff --git a/runtime/dart_isolate.h b/runtime/dart_isolate.h
index 60412972a..453810b1b 100644
--- a/runtime/dart_isolate.h
+++ b/runtime/dart_isolate.h
@@ -156,8 +156,8 @@ class DartIsolate : public UIDartState {
void OnShutdownCallback();
- // |Dart_IsolateCreateCallback|
- static Dart_Isolate DartIsolateCreateCallback(
+ // |Dart_IsolateGroupCreateCallback|
+ static Dart_Isolate DartIsolateGroupCreateCallback(
const char* advisory_script_uri,
const char* advisory_script_entrypoint,
const char* package_root,
@@ -189,9 +189,9 @@ class DartIsolate : public UIDartState {
std::shared_ptr<DartIsolate>* isolate_group_data,
std::shared_ptr<DartIsolate>* isolate_data);
- // |Dart_IsolateCleanupCallback|
- static void DartIsolateCleanupCallback(
- std::shared_ptr<DartIsolate>* embedder_isolate);
+ // |Dart_IsolateGroupCleanupCallback|
+ static void DartIsolateGroupCleanupCallback(
+ std::shared_ptr<DartIsolate>* isolate_group_data);
FML_DISALLOW_COPY_AND_ASSIGN(DartIsolate);
};
diff --git a/runtime/dart_vm.cc b/runtime/dart_vm.cc
index 903e74b15..555d0c9ee 100644
--- a/runtime/dart_vm.cc
+++ b/runtime/dart_vm.cc
@@ -366,12 +366,13 @@ DartVM::DartVM(std::shared_ptr<const DartVMData> vm_data,
params.vm_snapshot_data = vm_data_->GetVMSnapshot().GetDataMapping();
params.vm_snapshot_instructions =
vm_data_->GetVMSnapshot().GetInstructionsMapping();
- params.create = reinterpret_cast<decltype(params.create)>(
- DartIsolate::DartIsolateCreateCallback);
- params.shutdown = reinterpret_cast<decltype(params.shutdown)>(
- DartIsolate::DartIsolateShutdownCallback);
- params.cleanup = reinterpret_cast<decltype(params.cleanup)>(
- DartIsolate::DartIsolateCleanupCallback);
+ params.create_group = reinterpret_cast<decltype(params.create_group)>(
+ DartIsolate::DartIsolateGroupCreateCallback);
+ params.shutdown_isolate =
+ reinterpret_cast<decltype(params.shutdown_isolate)>(
+ DartIsolate::DartIsolateShutdownCallback);
+ params.cleanup_group = reinterpret_cast<decltype(params.cleanup_group)>(
+ DartIsolate::DartIsolateGroupCleanupCallback);
params.thread_exit = ThreadExitCallback;
params.get_service_assets = GetVMServiceAssetsArchiveCallback;
params.entropy_source = dart::bin::GetEntropy;
diff --git a/shell/platform/fuchsia/dart/dart_component_controller.cc b/shell/platform/fuchsia/dart/dart_component_controller.cc
index 1c4f71050..c8e7cc5ab 100644
--- a/shell/platform/fuchsia/dart/dart_component_controller.cc
+++ b/shell/platform/fuchsia/dart/dart_component_controller.cc
@@ -324,12 +324,13 @@ bool DartComponentController::CreateIsolate(
auto state = new std::shared_ptr<tonic::DartState>(new tonic::DartState(
namespace_fd, [this](Dart_Handle result) { MessageEpilogue(result); }));
- isolate_ = Dart_CreateIsolate(
+ isolate_ = Dart_CreateIsolateGroup(
url_.c_str(), label_.c_str(), isolate_snapshot_data,
isolate_snapshot_instructions, shared_snapshot_data,
- shared_snapshot_instructions, nullptr /* flags */, state, &error);
+ shared_snapshot_instructions, nullptr /* flags */,
+ state /* isolate_group_data */, state /* isolate_data */, &error);
if (!isolate_) {
- FX_LOGF(ERROR, LOG_TAG, "Dart_CreateIsolate failed: %s", error);
+ FX_LOGF(ERROR, LOG_TAG, "Dart_CreateIsolateGroup failed: %s", error);
return false;
}
diff --git a/shell/platform/fuchsia/dart/dart_runner.cc b/shell/platform/fuchsia/dart/dart_runner.cc
index 200500d2c..b9ded3ac4 100644
--- a/shell/platform/fuchsia/dart/dart_runner.cc
+++ b/shell/platform/fuchsia/dart/dart_runner.cc
@@ -61,13 +61,13 @@ const char* kDartVMArgs[] = {
// clang-format on
};
-Dart_Isolate IsolateCreateCallback(const char* uri,
- const char* name,
- const char* package_root,
- const char* package_config,
- Dart_IsolateFlags* flags,
- void* callback_data,
- char** error) {
+Dart_Isolate IsolateGroupCreateCallback(const char* uri,
+ const char* name,
+ const char* package_root,
+ const char* package_config,
+ Dart_IsolateFlags* flags,
+ void* callback_data,
+ char** error) {
if (std::string(uri) == DART_VM_SERVICE_ISOLATE_NAME) {
#if defined(DART_PRODUCT)
*error = strdup("The service isolate is not implemented in product mode");
@@ -81,7 +81,7 @@ Dart_Isolate IsolateCreateCallback(const char* uri,
return NULL;
}
-void IsolateShutdownCallback(void* callback_data) {
+void IsolateShutdownCallback(void* isolate_group_data, void* isolate_data) {
// The service isolate (and maybe later the kernel isolate) doesn't have an
// async loop.
auto dispatcher = async_get_default_dispatcher();
@@ -92,8 +92,8 @@ void IsolateShutdownCallback(void* callback_data) {
}
}
-void IsolateCleanupCallback(void* callback_data) {
- delete static_cast<std::shared_ptr<tonic::DartState>*>(callback_data);
+void IsolateGroupCleanupCallback(void* isolate_group_data) {
+ delete static_cast<std::shared_ptr<tonic::DartState>*>(isolate_group_data);
}
void RunApplication(
@@ -167,9 +167,9 @@ DartRunner::DartRunner() : context_(sys::ComponentContext::Create()) {
params.vm_snapshot_data = vm_snapshot_data_.address();
params.vm_snapshot_instructions = vm_snapshot_instructions_.address();
#endif
- params.create = IsolateCreateCallback;
- params.shutdown = IsolateShutdownCallback;
- params.cleanup = IsolateCleanupCallback;
+ params.create_group = IsolateGroupCreateCallback;
+ params.shutdown_isolate = IsolateShutdownCallback;
+ params.cleanup_group = IsolateGroupCleanupCallback;
params.entropy_source = EntropySource;
#if !defined(DART_PRODUCT)
params.get_service_assets = GetVMServiceAssetsArchiveCallback;
diff --git a/shell/platform/fuchsia/dart/service_isolate.cc b/shell/platform/fuchsia/dart/service_isolate.cc
index 2e6eda265..5287d638f 100644
--- a/shell/platform/fuchsia/dart/service_isolate.cc
+++ b/shell/platform/fuchsia/dart/service_isolate.cc
@@ -123,14 +123,14 @@ Dart_Isolate CreateServiceIsolate(const char* uri,
#endif
auto state = new std::shared_ptr<tonic::DartState>(new tonic::DartState());
- Dart_Isolate isolate = Dart_CreateIsolate(
+ Dart_Isolate isolate = Dart_CreateIsolateGroup(
uri, DART_VM_SERVICE_ISOLATE_NAME, mapped_isolate_snapshot_data.address(),
mapped_isolate_snapshot_instructions.address(),
mapped_shared_snapshot_data.address(),
- mapped_shared_snapshot_instructions.address(), nullptr /* flags */, state,
- error);
+ mapped_shared_snapshot_instructions.address(), nullptr /* flags */,
+ state /* isolate_group_data */, state /* isolate_data */, error);
if (!isolate) {
- FX_LOGF(ERROR, LOG_TAG, "Dart_CreateIsolate failed: %s", *error);
+ FX_LOGF(ERROR, LOG_TAG, "Dart_CreateIsolateGroup failed: %s", *error);
return nullptr;
}