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

Side by Side Diff: runtime/lib/isolate_patch.dart

Issue 73783002: Make SendPortImpl_internalSend not take a reply port as argument. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Remove TODO Created 7 years, 1 month 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/lib/isolate.cc ('k') | runtime/vm/bootstrap_natives.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) 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 import "dart:collection" show HashMap; 5 import "dart:collection" show HashMap;
6 6
7 patch class ReceivePort { 7 patch class ReceivePort {
8 /* patch */ factory ReceivePort() = _ReceivePortImpl; 8 /* patch */ factory ReceivePort() = _ReceivePortImpl;
9 9
10 /* patch */ factory ReceivePort.fromRawReceivePort(RawReceivePort rawPort) = 10 /* patch */ factory ReceivePort.fromRawReceivePort(RawReceivePort rawPort) =
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 Function _handler; 106 Function _handler;
107 107
108 // id to RawReceivePort mapping. 108 // id to RawReceivePort mapping.
109 static final Map _portMap = new HashMap(); 109 static final Map _portMap = new HashMap();
110 } 110 }
111 111
112 112
113 class _SendPortImpl implements SendPort { 113 class _SendPortImpl implements SendPort {
114 /*--- public interface ---*/ 114 /*--- public interface ---*/
115 void send(var message) { 115 void send(var message) {
116 _sendInternal(_id, 0, message); 116 _sendInternal(_id, message);
117 } 117 }
118 118
119 bool operator==(var other) { 119 bool operator==(var other) {
120 return (other is _SendPortImpl) && _id == other._id; 120 return (other is _SendPortImpl) && _id == other._id;
121 } 121 }
122 122
123 int get hashCode { 123 int get hashCode {
124 const int MASK = 0x3FFFFFFF; 124 const int MASK = 0x3FFFFFFF;
125 int hash = _id; 125 int hash = _id;
126 hash = (hash + ((hash & (MASK >> 10)) << 10)) & MASK; 126 hash = (hash + ((hash & (MASK >> 10)) << 10)) & MASK;
127 hash ^= (hash >> 6); 127 hash ^= (hash >> 6);
128 hash = (hash + ((hash & (MASK >> 3)) << 3)) & MASK; 128 hash = (hash + ((hash & (MASK >> 3)) << 3)) & MASK;
129 hash ^= (hash >> 11); 129 hash ^= (hash >> 11);
130 hash = (hash + ((hash & (MASK >> 15)) << 15)) & MASK; 130 hash = (hash + ((hash & (MASK >> 15)) << 15)) & MASK;
131 return hash; 131 return hash;
132 } 132 }
133 133
134 /*--- private implementation ---*/ 134 /*--- private implementation ---*/
135 const _SendPortImpl(int id) : _id = id; 135 const _SendPortImpl(int id) : _id = id;
136 136
137 // _SendPortImpl._create is called from the VM when a new SendPort instance is 137 // _SendPortImpl._create is called from the VM when a new SendPort instance is
138 // needed by the VM code. 138 // needed by the VM code.
139 static SendPort _create(int id) { 139 static SendPort _create(int id) {
140 return new _SendPortImpl(id); 140 return new _SendPortImpl(id);
141 } 141 }
142 142
143 // Forward the implementation of sending messages to the VM. Only port ids 143 // Forward the implementation of sending messages to the VM. Only port ids
144 // are being handed to the VM. 144 // are being handed to the VM.
145 // TODO(14731): Remove replyId argument. 145 static _sendInternal(int sendId, var message)
146 static _sendInternal(int sendId, int replyId, var message)
147 native "SendPortImpl_sendInternal_"; 146 native "SendPortImpl_sendInternal_";
148 147
149 final int _id; 148 final int _id;
150 } 149 }
151 150
152 typedef _MainFunction(); 151 typedef _MainFunction();
153 typedef _MainFunctionArgs(args); 152 typedef _MainFunctionArgs(args);
154 typedef _MainFunctionArgsMessage(args, message); 153 typedef _MainFunctionArgsMessage(args, message);
155 154
156 /** 155 /**
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 } 242 }
244 243
245 static final RawReceivePort _self = _mainPort; 244 static final RawReceivePort _self = _mainPort;
246 static RawReceivePort get _mainPort native "Isolate_mainPort"; 245 static RawReceivePort get _mainPort native "Isolate_mainPort";
247 246
248 static SendPort _spawnFunction(Function topLevelFunction) 247 static SendPort _spawnFunction(Function topLevelFunction)
249 native "Isolate_spawnFunction"; 248 native "Isolate_spawnFunction";
250 249
251 static SendPort _spawnUri(String uri) native "Isolate_spawnUri"; 250 static SendPort _spawnUri(String uri) native "Isolate_spawnUri";
252 } 251 }
OLDNEW
« no previous file with comments | « runtime/lib/isolate.cc ('k') | runtime/vm/bootstrap_natives.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698