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

Side by Side Diff: runtime/bin/process_patch.dart

Issue 1420443002: Corrects cleanup on an error during Process startup (Closed) Base URL: git@github.com:dart-lang/sdk.git@stable
Patch Set: Created 5 years, 2 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
« no previous file with comments | « no previous file | no next file » | 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 patch class _WindowsCodePageDecoder { 5 patch class _WindowsCodePageDecoder {
6 /* patch */ static String _decodeBytes(List<int> bytes) 6 /* patch */ static String _decodeBytes(List<int> bytes)
7 native "SystemEncodingToString"; 7 native "SystemEncodingToString";
8 } 8 }
9 9
10 10
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 bool includeParentEnvironment, 188 bool includeParentEnvironment,
189 bool runInShell, 189 bool runInShell,
190 ProcessStartMode mode) : super() { 190 ProcessStartMode mode) : super() {
191 _processes[_serviceId] = this; 191 _processes[_serviceId] = this;
192 if (runInShell) { 192 if (runInShell) {
193 arguments = _getShellArguments(path, arguments); 193 arguments = _getShellArguments(path, arguments);
194 path = _getShellCommand(); 194 path = _getShellCommand();
195 } 195 }
196 196
197 if (path is !String) { 197 if (path is !String) {
198 throw new ArgumentError("Path is not a String: $path"); 198 throw new ArgumentError("Path is not a String: $path");
Ivan Posva 2015/10/20 06:39:12 Here?
zra 2015/10/20 16:03:26 As discussed, we no longer populate the map.
199 } 199 }
200 _path = path; 200 _path = path;
201 201
202 if (arguments is !List) { 202 if (arguments is !List) {
203 throw new ArgumentError("Arguments is not a List: $arguments"); 203 throw new ArgumentError("Arguments is not a List: $arguments");
Ivan Posva 2015/10/20 06:39:12 And here?
204 } 204 }
205 int len = arguments.length; 205 int len = arguments.length;
206 _arguments = new List<String>(len); 206 _arguments = new List<String>(len);
207 for (int i = 0; i < len; i++) { 207 for (int i = 0; i < len; i++) {
208 var arg = arguments[i]; 208 var arg = arguments[i];
209 if (arg is !String) { 209 if (arg is !String) {
210 throw new ArgumentError("Non-string argument: $arg"); 210 throw new ArgumentError("Non-string argument: $arg");
Ivan Posva 2015/10/20 06:39:12 And many more places?
211 } 211 }
212 _arguments[i] = arguments[i]; 212 _arguments[i] = arguments[i];
213 if (Platform.isWindows) { 213 if (Platform.isWindows) {
214 _arguments[i] = _windowsArgumentEscape(_arguments[i]); 214 _arguments[i] = _windowsArgumentEscape(_arguments[i]);
215 } 215 }
216 } 216 }
217 217
218 if (_workingDirectory != null && _workingDirectory is !String) { 218 if (_workingDirectory != null && _workingDirectory is !String) {
219 throw new ArgumentError( 219 throw new ArgumentError(
220 "WorkingDirectory is not a String: $_workingDirectory"); 220 "WorkingDirectory is not a String: $_workingDirectory");
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 _mode == ProcessStartMode.DETACHED 402 _mode == ProcessStartMode.DETACHED
403 ? null : _stdin._sink._nativeSocket, 403 ? null : _stdin._sink._nativeSocket,
404 _mode == ProcessStartMode.DETACHED 404 _mode == ProcessStartMode.DETACHED
405 ? null : _stdout._stream._nativeSocket, 405 ? null : _stdout._stream._nativeSocket,
406 _mode == ProcessStartMode.DETACHED 406 _mode == ProcessStartMode.DETACHED
407 ? null : _stderr._stream._nativeSocket, 407 ? null : _stderr._stream._nativeSocket,
408 _mode != ProcessStartMode.NORMAL 408 _mode != ProcessStartMode.NORMAL
409 ? null : _exitHandler._nativeSocket, 409 ? null : _exitHandler._nativeSocket,
410 status); 410 status);
411 if (!success) { 411 if (!success) {
412 _processes.remove(_serviceId);
412 completer.completeError( 413 completer.completeError(
413 new ProcessException(_path, 414 new ProcessException(_path,
414 _arguments, 415 _arguments,
415 status._errorMessage, 416 status._errorMessage,
416 status._errorCode)); 417 status._errorCode));
417 return; 418 return;
418 } 419 }
419 420
420 _started = true; 421 _started = true;
421 422
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
464 _arguments, 465 _arguments,
465 _workingDirectory, 466 _workingDirectory,
466 _environment, 467 _environment,
467 ProcessStartMode.NORMAL.index, 468 ProcessStartMode.NORMAL.index,
468 _stdin._sink._nativeSocket, 469 _stdin._sink._nativeSocket,
469 _stdout._stream._nativeSocket, 470 _stdout._stream._nativeSocket,
470 _stderr._stream._nativeSocket, 471 _stderr._stream._nativeSocket,
471 _exitHandler._nativeSocket, 472 _exitHandler._nativeSocket,
472 status); 473 status);
473 if (!success) { 474 if (!success) {
475 _processes.remove(_serviceId);
474 throw new ProcessException(_path, 476 throw new ProcessException(_path,
475 _arguments, 477 _arguments,
476 status._errorMessage, 478 status._errorMessage,
477 status._errorCode); 479 status._errorCode);
478 } 480 }
479 481
480 var result = _wait( 482 var result = _wait(
481 _stdin._sink._nativeSocket, 483 _stdin._sink._nativeSocket,
482 _stdout._stream._nativeSocket, 484 _stdout._stream._nativeSocket,
483 _stderr._stream._nativeSocket, 485 _stderr._stream._nativeSocket,
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 Encoding stderrEncoding) { 620 Encoding stderrEncoding) {
619 var process = new _ProcessImpl(executable, 621 var process = new _ProcessImpl(executable,
620 arguments, 622 arguments,
621 workingDirectory, 623 workingDirectory,
622 environment, 624 environment,
623 includeParentEnvironment, 625 includeParentEnvironment,
624 runInShell, 626 runInShell,
625 ProcessStartMode.NORMAL); 627 ProcessStartMode.NORMAL);
626 return process._runAndWait(stdoutEncoding, stderrEncoding); 628 return process._runAndWait(stdoutEncoding, stderrEncoding);
627 } 629 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698