mirror of
https://github.com/dart-lang/sdk
synced 2024-09-15 22:41:41 +00:00
[vm] Fix several kernel-specific memory leaks.
Bug: https://github.com/dart-lang/sdk/issues/32615 Change-Id: Ic969915c6084b9deef0d86c8f8a0e9aa4f4640e5 Reviewed-on: https://dart-review.googlesource.com/47321 Commit-Queue: Ryan Macnak <rmacnak@google.com> Reviewed-by: Alexander Aprelev <aam@google.com>
This commit is contained in:
parent
b7c3c32f63
commit
00ec3b0867
|
@ -368,6 +368,7 @@ DartUtils::MagicNumber DartUtils::SniffForMagicNumber(const char* filename) {
|
|||
if (File::GetType(NULL, filename, true) == File::kIsFile) {
|
||||
File* file = File::Open(NULL, filename, File::kRead);
|
||||
if (file != NULL) {
|
||||
RefCntReleaseScope<File> rs(file);
|
||||
intptr_t max_magic_length = 0;
|
||||
max_magic_length =
|
||||
Utils::Maximum(max_magic_length, snapshot_magic_number.length);
|
||||
|
@ -382,7 +383,6 @@ DartUtils::MagicNumber DartUtils::SniffForMagicNumber(const char* filename) {
|
|||
if (file->ReadFully(&header, max_magic_length)) {
|
||||
magic_number = DartUtils::SniffForMagicNumber(header, sizeof(header));
|
||||
}
|
||||
file->Close();
|
||||
}
|
||||
}
|
||||
return magic_number;
|
||||
|
|
|
@ -165,7 +165,6 @@ static Dart_Isolate CreateIsolateAndSetup(const char* script_uri,
|
|||
DART_KERNEL_ISOLATE_NAME, main, isolate_snapshot_data,
|
||||
isolate_snapshot_instructions, flags, isolate_data, error);
|
||||
if (isolate == NULL) {
|
||||
*error = strdup("Failed to create isolate");
|
||||
delete isolate_data;
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -101,6 +101,8 @@ class RunKernelTask : public ThreadPool::Task {
|
|||
OS::PrintErr(DART_KERNEL_ISOLATE_NAME ": Isolate creation error: %s\n",
|
||||
error);
|
||||
}
|
||||
free(error);
|
||||
error = NULL;
|
||||
KernelIsolate::SetKernelIsolate(NULL);
|
||||
KernelIsolate::FinishedInitializing();
|
||||
return;
|
||||
|
|
Loading…
Reference in a new issue