| OLD | NEW | 
|    1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file |    1 // Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file | 
|    2 // for details. All rights reserved. Use of this source code is governed by a |    2 // for details. All rights reserved. Use of this source code is governed by a | 
|    3 // BSD-style license that can be found in the LICENSE file. |    3 // BSD-style license that can be found in the LICENSE file. | 
|    4  |    4  | 
|    5 #include "platform/globals.h" |    5 #include "platform/globals.h" | 
|    6 #if defined(TARGET_OS_MACOS) |    6 #if defined(TARGET_OS_MACOS) | 
|    7  |    7  | 
|    8 #include <mach-o/dyld.h> |    8 #include <mach-o/dyld.h> | 
|    9 #include <sys/types.h> |    9 #include <sys/types.h> | 
|   10 #include <sys/sysctl.h> |   10 #include <sys/sysctl.h> | 
|   11  |   11  | 
|   12 #include "bin/file.h" |   12 #include "bin/file.h" | 
|   13 #include "bin/platform.h" |   13 #include "bin/platform.h" | 
|   14  |   14  | 
|   15 #if !defined(TARGET_OS_IOS) |   15 #if !TARGET_OS_IOS | 
|   16 #include <crt_externs.h>  // NOLINT |   16 #include <crt_externs.h>  // NOLINT | 
|   17 #endif  // !defined(TARGET_OS_IOS) |   17 #endif  // !TARGET_OS_IOS | 
|   18 #include <signal.h>  // NOLINT |   18 #include <signal.h>  // NOLINT | 
|   19 #include <string.h>  // NOLINT |   19 #include <string.h>  // NOLINT | 
|   20 #include <unistd.h>  // NOLINT |   20 #include <unistd.h>  // NOLINT | 
|   21  |   21  | 
|   22 #include "bin/fdutils.h" |   22 #include "bin/fdutils.h" | 
|   23  |   23  | 
|   24  |   24  | 
|   25 namespace dart { |   25 namespace dart { | 
|   26 namespace bin { |   26 namespace bin { | 
|   27  |   27  | 
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   61   return "dylib"; |   61   return "dylib"; | 
|   62 } |   62 } | 
|   63  |   63  | 
|   64  |   64  | 
|   65 bool Platform::LocalHostname(char *buffer, intptr_t buffer_length) { |   65 bool Platform::LocalHostname(char *buffer, intptr_t buffer_length) { | 
|   66   return gethostname(buffer, buffer_length) == 0; |   66   return gethostname(buffer, buffer_length) == 0; | 
|   67 } |   67 } | 
|   68  |   68  | 
|   69  |   69  | 
|   70 char** Platform::Environment(intptr_t* count) { |   70 char** Platform::Environment(intptr_t* count) { | 
|   71 #if defined(TARGET_OS_IOS) |   71 #if TARGET_OS_IOS | 
|   72   // TODO(iposva): On Mac (desktop), _NSGetEnviron() is used to access the |   72   // TODO(iposva): On Mac (desktop), _NSGetEnviron() is used to access the | 
|   73   // environ from shared libraries or bundles. This is present in crt_externs.h |   73   // environ from shared libraries or bundles. This is present in crt_externs.h | 
|   74   // which is unavailable on iOS. On iOS, everything is statically linked for |   74   // which is unavailable on iOS. On iOS, everything is statically linked for | 
|   75   // now. So arguably, accessing the environ directly with a "extern char |   75   // now. So arguably, accessing the environ directly with a "extern char | 
|   76   // **environ" will work. But this approach is brittle as the target with this |   76   // **environ" will work. But this approach is brittle as the target with this | 
|   77   // CU could be a dynamic framework (introduced in iOS 8). A more elegant |   77   // CU could be a dynamic framework (introduced in iOS 8). A more elegant | 
|   78   // approach needs to be devised. |   78   // approach needs to be devised. | 
|   79   return NULL; |   79   return NULL; | 
|   80 #else |   80 #else | 
|   81   // Using environ directly is only safe as long as we do not |   81   // Using environ directly is only safe as long as we do not | 
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  117   // Return the canonical path as the returned path might contain symlinks. |  117   // Return the canonical path as the returned path might contain symlinks. | 
|  118   char* canon_path = File::GetCanonicalPath(path); |  118   char* canon_path = File::GetCanonicalPath(path); | 
|  119   free(path); |  119   free(path); | 
|  120   return canon_path; |  120   return canon_path; | 
|  121 } |  121 } | 
|  122  |  122  | 
|  123 }  // namespace bin |  123 }  // namespace bin | 
|  124 }  // namespace dart |  124 }  // namespace dart | 
|  125  |  125  | 
|  126 #endif  // defined(TARGET_OS_MACOS) |  126 #endif  // defined(TARGET_OS_MACOS) | 
| OLD | NEW |