| 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 "bin/dbg_connection.h" | 5 #include "bin/dbg_connection.h" |
| 6 #include "bin/dbg_message.h" | 6 #include "bin/dbg_message.h" |
| 7 #include "bin/dartutils.h" | 7 #include "bin/dartutils.h" |
| 8 #include "bin/thread.h" | 8 #include "bin/thread.h" |
| 9 #include "bin/utils.h" | 9 #include "bin/utils.h" |
| 10 | 10 |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 pr.GetValueChars(param_chars, buflen); | 102 pr.GetValueChars(param_chars, buflen); |
| 103 // TODO(hausner): Decode escape sequences. | 103 // TODO(hausner): Decode escape sequences. |
| 104 return param_chars; | 104 return param_chars; |
| 105 } | 105 } |
| 106 | 106 |
| 107 | 107 |
| 108 static void FormatEncodedString(dart::TextBuffer* buf, Dart_Handle str) { | 108 static void FormatEncodedString(dart::TextBuffer* buf, Dart_Handle str) { |
| 109 intptr_t str_len = 0; | 109 intptr_t str_len = 0; |
| 110 Dart_Handle res = Dart_StringLength(str, &str_len); | 110 Dart_Handle res = Dart_StringLength(str, &str_len); |
| 111 ASSERT_NOT_ERROR(res); | 111 ASSERT_NOT_ERROR(res); |
| 112 uint32_t* codepoints = | 112 uint16_t* codepoints = |
| 113 reinterpret_cast<uint32_t*>(malloc(str_len * sizeof(uint32_t))); | 113 reinterpret_cast<uint16_t*>(malloc(str_len * sizeof(uint16_t))); |
| 114 ASSERT(codepoints != NULL); | 114 ASSERT(codepoints != NULL); |
| 115 intptr_t actual_len = str_len; | 115 intptr_t actual_len = str_len; |
| 116 res = Dart_StringGet32(str, codepoints, &actual_len); | 116 res = Dart_StringToUTF16(str, codepoints, &actual_len); |
| 117 ASSERT_NOT_ERROR(res); | 117 ASSERT_NOT_ERROR(res); |
| 118 ASSERT(str_len == actual_len); | 118 ASSERT(str_len == actual_len); |
| 119 buf->AddChar('\"'); | 119 buf->AddChar('\"'); |
| 120 for (int i = 0; i < str_len; i++) { | 120 for (int i = 0; i < str_len; i++) { |
| 121 buf->AddEscapedChar(codepoints[i]); | 121 buf->AddEscapedChar(codepoints[i]); |
| 122 } | 122 } |
| 123 buf->AddChar('\"'); | 123 buf->AddChar('\"'); |
| 124 free(codepoints); | 124 free(codepoints); |
| 125 } | 125 } |
| 126 | 126 |
| (...skipping 558 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 685 | 685 |
| 686 | 686 |
| 687 bool DbgMessage::HandleGetSourceCmd(DbgMessage* in_msg) { | 687 bool DbgMessage::HandleGetSourceCmd(DbgMessage* in_msg) { |
| 688 ASSERT(in_msg != NULL); | 688 ASSERT(in_msg != NULL); |
| 689 MessageParser msg_parser(in_msg->buffer(), in_msg->buffer_len()); | 689 MessageParser msg_parser(in_msg->buffer(), in_msg->buffer_len()); |
| 690 int msg_id = msg_parser.MessageId(); | 690 int msg_id = msg_parser.MessageId(); |
| 691 dart::TextBuffer msg(64); | 691 dart::TextBuffer msg(64); |
| 692 intptr_t lib_id = msg_parser.GetIntParam("libraryId"); | 692 intptr_t lib_id = msg_parser.GetIntParam("libraryId"); |
| 693 char* url_chars = msg_parser.GetStringParam("url"); | 693 char* url_chars = msg_parser.GetStringParam("url"); |
| 694 ASSERT(url_chars != NULL); | 694 ASSERT(url_chars != NULL); |
| 695 Dart_Handle url = Dart_NewString(url_chars); | 695 Dart_Handle url = DartUtils::NewString(url_chars); |
| 696 ASSERT_NOT_ERROR(url); | 696 ASSERT_NOT_ERROR(url); |
| 697 free(url_chars); | 697 free(url_chars); |
| 698 url_chars = NULL; | 698 url_chars = NULL; |
| 699 Dart_Handle source = Dart_ScriptGetSource(lib_id, url); | 699 Dart_Handle source = Dart_ScriptGetSource(lib_id, url); |
| 700 if (Dart_IsError(source)) { | 700 if (Dart_IsError(source)) { |
| 701 in_msg->SendErrorReply(msg_id, Dart_GetError(source)); | 701 in_msg->SendErrorReply(msg_id, Dart_GetError(source)); |
| 702 return false; | 702 return false; |
| 703 } | 703 } |
| 704 msg.Printf("{ \"id\": %d, ", msg_id); | 704 msg.Printf("{ \"id\": %d, ", msg_id); |
| 705 msg.Printf("\"result\": { \"text\": "); | 705 msg.Printf("\"result\": { \"text\": "); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 725 return false; | 725 return false; |
| 726 } | 726 } |
| 727 | 727 |
| 728 | 728 |
| 729 bool DbgMessage::HandleSetBpCmd(DbgMessage* in_msg) { | 729 bool DbgMessage::HandleSetBpCmd(DbgMessage* in_msg) { |
| 730 ASSERT(in_msg != NULL); | 730 ASSERT(in_msg != NULL); |
| 731 MessageParser msg_parser(in_msg->buffer(), in_msg->buffer_len()); | 731 MessageParser msg_parser(in_msg->buffer(), in_msg->buffer_len()); |
| 732 int msg_id = msg_parser.MessageId(); | 732 int msg_id = msg_parser.MessageId(); |
| 733 char* url_chars = msg_parser.GetStringParam("url"); | 733 char* url_chars = msg_parser.GetStringParam("url"); |
| 734 ASSERT(url_chars != NULL); | 734 ASSERT(url_chars != NULL); |
| 735 Dart_Handle url = Dart_NewString(url_chars); | 735 Dart_Handle url = DartUtils::NewString(url_chars); |
| 736 ASSERT_NOT_ERROR(url); | 736 ASSERT_NOT_ERROR(url); |
| 737 free(url_chars); | 737 free(url_chars); |
| 738 url_chars = NULL; | 738 url_chars = NULL; |
| 739 intptr_t line_number = msg_parser.GetIntParam("line"); | 739 intptr_t line_number = msg_parser.GetIntParam("line"); |
| 740 Dart_Handle bp_id = Dart_SetBreakpoint(url, line_number); | 740 Dart_Handle bp_id = Dart_SetBreakpoint(url, line_number); |
| 741 if (Dart_IsError(bp_id)) { | 741 if (Dart_IsError(bp_id)) { |
| 742 in_msg->SendErrorReply(msg_id, Dart_GetError(bp_id)); | 742 in_msg->SendErrorReply(msg_id, Dart_GetError(bp_id)); |
| 743 return false; | 743 return false; |
| 744 } | 744 } |
| 745 ASSERT(Dart_IsInteger(bp_id)); | 745 ASSERT(Dart_IsInteger(bp_id)); |
| (...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1092 msg_queue->SendIsolateEvent(isolate_id, kind); | 1092 msg_queue->SendIsolateEvent(isolate_id, kind); |
| 1093 if (kind == kInterrupted) { | 1093 if (kind == kInterrupted) { |
| 1094 msg_queue->HandleMessages(); | 1094 msg_queue->HandleMessages(); |
| 1095 } else { | 1095 } else { |
| 1096 ASSERT(kind == kShutdown); | 1096 ASSERT(kind == kShutdown); |
| 1097 RemoveIsolateMsgQueue(isolate_id); | 1097 RemoveIsolateMsgQueue(isolate_id); |
| 1098 } | 1098 } |
| 1099 } | 1099 } |
| 1100 Dart_ExitScope(); | 1100 Dart_ExitScope(); |
| 1101 } | 1101 } |
| OLD | NEW |