| Index: bin/builtin_natives.cc
|
| ===================================================================
|
| --- bin/builtin_natives.cc (revision 14046)
|
| +++ bin/builtin_natives.cc (working copy)
|
| @@ -84,7 +84,7 @@
|
| Dart_NativeFunction Builtin::NativeLookup(Dart_Handle name,
|
| int argument_count) {
|
| const char* function_name = NULL;
|
| - Dart_Handle result = Dart_StringToCString(name, &function_name);
|
| + Dart_Handle result = Dart_StringAsCString(name, &function_name);
|
| DART_CHECK_VALID(result);
|
| ASSERT(function_name != NULL);
|
| int num_entries = sizeof(BuiltinEntries) / sizeof(struct NativeEntries);
|
| @@ -103,9 +103,11 @@
|
| // test/debug functionality in standalone dart mode.
|
|
|
| void Builtin::PrintString(FILE* out, Dart_Handle str) {
|
| - const uint8_t* characters = NULL;
|
| - intptr_t length;
|
| - Dart_Handle result = Dart_StringToBytes(str, &characters, &length);
|
| + 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_StringAsUTF8(str, chars, &length);
|
| if (Dart_IsError(result)) {
|
| // TODO(turnidge): Consider propagating some errors here. What if
|
| // an isolate gets interrupted by the embedder in the middle of
|
| @@ -113,10 +115,11 @@
|
| // interrupt.
|
| fputs(Dart_GetError(result), out);
|
| } else {
|
| - fwrite(characters, sizeof(*characters), length, out);
|
| + fwrite(chars, sizeof(*chars), length, out);
|
| }
|
| fputc('\n', out);
|
| fflush(out);
|
| + free(chars);
|
| }
|
|
|
|
|
|
|