Skip to content

Commit

Permalink
Fix some WebSocket strong-mode errors and warnings.
Browse files Browse the repository at this point in the history
R=sgjesse@google.com

Review URL: https://codereview.chromium.org/1952103002 .
  • Loading branch information
nex3 committed May 5, 2016
1 parent 11b9691 commit e41fb4c
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 12 deletions.
2 changes: 1 addition & 1 deletion sdk/lib/io/bytes_builder.dart
Expand Up @@ -153,7 +153,7 @@ class _CopyingBytesBuilder implements BytesBuilder {

class _BytesBuilder implements BytesBuilder {
int _length = 0;
final List _chunks = [];
final _chunks = <List<int>>[];

void add(List<int> bytes) {
if (bytes is! Uint8List) {
Expand Down
26 changes: 15 additions & 11 deletions sdk/lib/io/websocket_impl.dart
Expand Up @@ -58,7 +58,8 @@ class _CompressionMaxWindowBits {
* will lead to undefined behaviour.
*/
// TODO(ajohnsen): make this transformer reusable?
class _WebSocketProtocolTransformer implements StreamTransformer, EventSink {
class _WebSocketProtocolTransformer
implements StreamTransformer<List<int>, dynamic>, EventSink<List<int>> {
static const int START = 0;
static const int LEN_FIRST = 1;
static const int LEN_REST = 2;
Expand Down Expand Up @@ -114,7 +115,8 @@ class _WebSocketProtocolTransformer implements StreamTransformer, EventSink {
/**
* Process data received from the underlying communication channel.
*/
void add(Uint8List buffer) {
void add(List<int> bytes) {
var buffer = bytes is Uint8List ? bytes : new Uint8List.fromList(bytes);
int index = 0;
int lastIndex = buffer.length;
if (_state == CLOSED) {
Expand Down Expand Up @@ -626,18 +628,19 @@ class _WebSocketPerMessageDeflate {
}

// TODO(ajohnsen): Make this transformer reusable.
class _WebSocketOutgoingTransformer implements StreamTransformer, EventSink {
class _WebSocketOutgoingTransformer
implements StreamTransformer<dynamic, List<int>>, EventSink {
final _WebSocketImpl webSocket;
EventSink _eventSink;
EventSink<List<int>> _eventSink;

_WebSocketPerMessageDeflate _deflateHelper;

_WebSocketOutgoingTransformer(this.webSocket) {
_deflateHelper = webSocket._deflate;
}

Stream bind(Stream stream) {
return new Stream.eventTransformed(stream, (EventSink eventSink) {
Stream<List<int>> bind(Stream stream) {
return new Stream.eventTransformed(stream, (eventSink) {
if (_eventSink != null) {
throw new StateError("WebSocket transformer already used");
}
Expand All @@ -662,11 +665,12 @@ class _WebSocketOutgoingTransformer implements StreamTransformer, EventSink {
opcode = _WebSocketOpcode.TEXT;
data = UTF8.encode(message);
} else {
if (message is! List<int>) {
if (message is List<int>) {
data = message;
opcode = _WebSocketOpcode.BINARY;
} else {
throw new ArgumentError(message);
}
opcode = _WebSocketOpcode.BINARY;
data = message;
}

if (_deflateHelper != null) {
Expand Down Expand Up @@ -708,7 +712,7 @@ class _WebSocketOutgoingTransformer implements StreamTransformer, EventSink {
_eventSink.add(e);
});

static Iterable createFrame(
static Iterable<List<int>> createFrame(
int opcode, List<int> data, bool serverSide, bool compressed) {
bool mask = !serverSide; // Masking not implemented for server.
int dataLength = data == null ? 0 : data.length;
Expand Down Expand Up @@ -1218,7 +1222,7 @@ class _WebSocketImpl extends Stream with _ServiceObject implements WebSocket {

Map _toJSON(bool ref) {
var name = '${_socket.address.host}:${_socket.port}';
var r = {
var r = <String, dynamic>{
'id': _servicePath,
'type': _serviceType(ref),
'name': name,
Expand Down

0 comments on commit e41fb4c

Please sign in to comment.