| // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| #include "bin/isolate_data.h" |
| #include "bin/snapshot_utils.h" |
| #include "platform/growable_array.h" |
| |
| namespace dart { |
| namespace bin { |
| |
| IsolateGroupData::IsolateGroupData(const char* url, |
| const char* packages_file, |
| AppSnapshot* app_snapshot, |
| bool isolate_run_app_snapshot) |
| : script_url((url != NULL) ? Utils::StrDup(url) : NULL), |
| app_snapshot_(app_snapshot), |
| resolved_packages_config_(NULL), |
| kernel_buffer_(NULL), |
| kernel_buffer_size_(0), |
| isolate_run_app_snapshot_(isolate_run_app_snapshot) { |
| if (packages_file != NULL) { |
| packages_file_ = Utils::StrDup(packages_file); |
| } |
| } |
| |
| IsolateGroupData::~IsolateGroupData() { |
| for (intptr_t i = 0; i < loading_units_.length(); i++) { |
| delete loading_units_[i]; |
| } |
| free(script_url); |
| script_url = nullptr; |
| free(packages_file_); |
| packages_file_ = nullptr; |
| free(resolved_packages_config_); |
| resolved_packages_config_ = nullptr; |
| kernel_buffer_ = nullptr; |
| kernel_buffer_size_ = 0; |
| } |
| |
| IsolateData::IsolateData(IsolateGroupData* isolate_group_data) |
| : isolate_group_data_(isolate_group_data), |
| loader_(nullptr), |
| packages_file_(nullptr) { |
| if (isolate_group_data->packages_file_ != nullptr) { |
| packages_file_ = Utils::StrDup(isolate_group_data->packages_file_); |
| } |
| } |
| |
| IsolateData::~IsolateData() { |
| free(packages_file_); |
| packages_file_ = nullptr; |
| } |
| |
| } // namespace bin |
| } // namespace dart |