| Index: runtime/bin/builtin_natives.cc
|
| diff --git a/runtime/bin/builtin_natives.cc b/runtime/bin/builtin_natives.cc
|
| index be9b99b2b12b93e9047375585657c91255ba53fe..995207c3d2f749db2ad6f86281255af875b8e59e 100644
|
| --- a/runtime/bin/builtin_natives.cc
|
| +++ b/runtime/bin/builtin_natives.cc
|
| @@ -103,11 +103,9 @@ Dart_NativeFunction Builtin::NativeLookup(Dart_Handle name,
|
| // test/debug functionality in standalone dart mode.
|
|
|
| void Builtin::PrintString(FILE* out, Dart_Handle str) {
|
| - intptr_t length = 0;
|
| - Dart_Handle result = Dart_StringLength(str, &length);
|
| - DART_CHECK_VALID(result);
|
| - uint8_t* chars = reinterpret_cast<uint8_t*>(malloc(length * sizeof(uint8_t)));
|
| - result = Dart_StringToUTF8(str, chars, &length);
|
| + const char* chars = NULL;
|
| +
|
| + Dart_Handle result = Dart_StringToCString(str, &chars);
|
| if (Dart_IsError(result)) {
|
| // TODO(turnidge): Consider propagating some errors here. What if
|
| // an isolate gets interrupted by the embedder in the middle of
|
| @@ -115,11 +113,11 @@ void Builtin::PrintString(FILE* out, Dart_Handle str) {
|
| // interrupt.
|
| fputs(Dart_GetError(result), out);
|
| } else {
|
| + intptr_t length = strlen(chars);
|
| fwrite(chars, sizeof(*chars), length, out);
|
| }
|
| fputc('\n', out);
|
| fflush(out);
|
| - free(chars);
|
| }
|
|
|
|
|
|
|