Chromium Code Reviews| Index: runtime/vm/os_macos.cc |
| =================================================================== |
| --- runtime/vm/os_macos.cc (revision 21320) |
| +++ runtime/vm/os_macos.cc (working copy) |
| @@ -135,6 +135,30 @@ |
| } |
| +char* OS::StrNDup(const char* s, intptr_t n) { |
| + // strndup has only been added to Mac OS X in 10.7. We are supplying |
| + // our own copy here if needed. |
| +#if !defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) || \ |
| + __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ <= 1060 |
| + intptr_t len = strlen(s); |
| + if ((n < 0) || (len < 0)) { |
| + return NULL; |
| + } |
| + if (n < len) { |
| + len = n; |
| + } |
| + char* result = reinterpret_cast<char*>(malloc(len + 1)); |
| + if (result == NULL) { |
| + return NULL; |
| + } |
| + result[len] = '\0'; |
| + return reinterpret_cast<char*>(memcpy(result, s, len)); |
| +#else // !defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) |
|
Vyacheslav Egorov (Google)
2013/04/12 16:10:34
comment does not really match condition.
Ivan Posva
2013/04/12 16:19:00
Extended comment with " || ...".
|
| + return strndup(s, n); |
| +#endif // !defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) |
| +} |
| + |
| + |
| void OS::Print(const char* format, ...) { |
| va_list args; |
| va_start(args, format); |