Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(127)

Side by Side Diff: runtime/vm/json_stream.cc

Issue 243973002: - Add a minimal implementation of Capability. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/json_stream.h ('k') | runtime/vm/message.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 "platform/assert.h" 5 #include "platform/assert.h"
6 6
7 #include "vm/dart_entry.h" 7 #include "vm/dart_entry.h"
8 #include "vm/debugger.h" 8 #include "vm/debugger.h"
9 #include "vm/json_stream.h" 9 #include "vm/json_stream.h"
10 #include "vm/message.h" 10 #include "vm/message.h"
(...skipping 16 matching lines...) Expand all
27 option_values_(NULL), 27 option_values_(NULL),
28 num_options_(0) { 28 num_options_(0) {
29 } 29 }
30 30
31 31
32 JSONStream::~JSONStream() { 32 JSONStream::~JSONStream() {
33 } 33 }
34 34
35 35
36 void JSONStream::Setup(Zone* zone, 36 void JSONStream::Setup(Zone* zone,
37 const Instance& reply_port, 37 Dart_Port reply_port,
38 const GrowableObjectArray& path, 38 const GrowableObjectArray& path,
39 const GrowableObjectArray& option_keys, 39 const GrowableObjectArray& option_keys,
40 const GrowableObjectArray& option_values) { 40 const GrowableObjectArray& option_values) {
41 // Setup the reply port. 41 set_reply_port(reply_port);
42 const Object& id_obj = Object::Handle(
43 DartLibraryCalls::PortGetId(reply_port));
44 if (id_obj.IsError()) {
45 Exceptions::PropagateError(Error::Cast(id_obj));
46 }
47 const Integer& id = Integer::Cast(id_obj);
48 Dart_Port port = static_cast<Dart_Port>(id.AsInt64Value());
49 ASSERT(port != ILLEGAL_PORT);
50 set_reply_port(port);
51 42
52 // Setup JSONStream arguments and options. The arguments and options 43 // Setup JSONStream arguments and options. The arguments and options
53 // are zone allocated and will be freed immediately after handling the 44 // are zone allocated and will be freed immediately after handling the
54 // message. 45 // message.
55 const char** arguments = zone->Alloc<const char*>(path.Length()); 46 const char** arguments = zone->Alloc<const char*>(path.Length());
56 String& string_iterator = String::Handle(); 47 String& string_iterator = String::Handle();
57 for (intptr_t i = 0; i < path.Length(); i++) { 48 for (intptr_t i = 0; i < path.Length(); i++) {
58 string_iterator ^= path.At(i); 49 string_iterator ^= path.At(i);
59 arguments[i] = zone->MakeCopyOfString(string_iterator.ToCString()); 50 arguments[i] = zone->MakeCopyOfString(string_iterator.ToCString());
60 if (i == 0) { 51 if (i == 0) {
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
420 intptr_t len2 = OS::VSNPrint(p, len+1, format, args); 411 intptr_t len2 = OS::VSNPrint(p, len+1, format, args);
421 va_end(args); 412 va_end(args);
422 ASSERT(len == len2); 413 ASSERT(len == len2);
423 stream_->buffer_.AddChar('"'); 414 stream_->buffer_.AddChar('"');
424 stream_->AddEscapedUTF8String(p); 415 stream_->AddEscapedUTF8String(p);
425 stream_->buffer_.AddChar('"'); 416 stream_->buffer_.AddChar('"');
426 free(p); 417 free(p);
427 } 418 }
428 419
429 } // namespace dart 420 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/json_stream.h ('k') | runtime/vm/message.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698