| Index: runtime/bin/platform_macos.cc
|
| diff --git a/runtime/bin/platform_macos.cc b/runtime/bin/platform_macos.cc
|
| index 0f7c62965c2c829f568a7e4e862a0fd8c9c1d599..b9a1faa08ccc3fab73ee2fbf8c38f9bfa1d9d72e 100644
|
| --- a/runtime/bin/platform_macos.cc
|
| +++ b/runtime/bin/platform_macos.cc
|
| @@ -89,9 +89,12 @@ char** Platform::Environment(intptr_t* count) {
|
| char** environ = *(_NSGetEnviron());
|
| intptr_t i = 0;
|
| char** tmp = environ;
|
| - while (*(tmp++) != NULL) i++;
|
| + while (*(tmp++) != NULL) {
|
| + i++;
|
| + }
|
| *count = i;
|
| - char** result = new char*[i];
|
| + char** result;
|
| + result = reinterpret_cast<char**>(Dart_ScopeAllocate(i * sizeof(*result)));
|
| for (intptr_t current = 0; current < i; current++) {
|
| result[current] = environ[current];
|
| }
|
| @@ -100,30 +103,23 @@ char** Platform::Environment(intptr_t* count) {
|
| }
|
|
|
|
|
| -void Platform::FreeEnvironment(char** env, intptr_t count) {
|
| - delete[] env;
|
| -}
|
| -
|
| -
|
| -char* Platform::ResolveExecutablePath() {
|
| +const char* Platform::ResolveExecutablePath() {
|
| // Get the required length of the buffer.
|
| uint32_t path_size = 0;
|
| - char* path = NULL;
|
| - if (_NSGetExecutablePath(path, &path_size) == 0) {
|
| + if (_NSGetExecutablePath(NULL, &path_size) == 0) {
|
| return NULL;
|
| }
|
| // Allocate buffer and get executable path.
|
| - path = reinterpret_cast<char*>(malloc(path_size));
|
| + char* path = DartUtils::ScopedCString(path_size);
|
| if (_NSGetExecutablePath(path, &path_size) != 0) {
|
| - free(path);
|
| return NULL;
|
| }
|
| // Return the canonical path as the returned path might contain symlinks.
|
| - char* canon_path = File::GetCanonicalPath(path);
|
| - free(path);
|
| + const char* canon_path = File::GetCanonicalPath(path);
|
| return canon_path;
|
| }
|
|
|
| +
|
| void Platform::Exit(int exit_code) {
|
| exit(exit_code);
|
| }
|
|
|