| Index: runtime/bin/utils_macos.cc
|
| diff --git a/runtime/bin/utils_macos.cc b/runtime/bin/utils_macos.cc
|
| index 2421d2a6a8e09325c762b37713fe868775050fd5..97717c756e6e26c66ae52c2e7e83bbf5a96b2993 100644
|
| --- a/runtime/bin/utils_macos.cc
|
| +++ b/runtime/bin/utils_macos.cc
|
| @@ -78,7 +78,26 @@ char* StringUtils::Utf8ToConsoleString(
|
|
|
|
|
| char* StringUtils::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*>(memmove(result, s, len));
|
| +#else // !defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) || ...
|
| return strndup(s, n);
|
| +#endif // !defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) || ...
|
| }
|
|
|
|
|
|
|