Cast sockets that set _owner and read closedReadEventSent of _NativeSocket

Change-Id: I0d3b24f503dcb167dd039e47228a665ca3d38453
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/262272
Reviewed-by: Lasse Nielsen <lrn@google.com>
Commit-Queue: Kallen Tu <kallentu@google.com>
This commit is contained in:
Kallen Tu 2022-10-11 13:12:33 +00:00 committed by Commit Queue
parent e4a8525d86
commit 446ee14abf
4 changed files with 18 additions and 13 deletions

View file

@ -21,13 +21,6 @@
"Dynamic invocation of '[]'.": 1,
"Dynamic invocation of 'toLowerCase'.": 1
},
"org-dartlang-sdk:///lib/io/secure_server_socket.dart": {
"Dynamic update to 'dart.io::_owner'.": 1
},
"org-dartlang-sdk:///lib/io/secure_socket.dart": {
"Dynamic access of 'closedReadEventSent'.": 1,
"Dynamic update to 'dart.io::_owner'.": 1
},
"org-dartlang-sdk:///lib/_internal/js_runtime/lib/js_patch.dart": {
"Dynamic invocation of '[]'.": 1
},

View file

@ -1721,7 +1721,8 @@ class _NativeSocket extends _NativeSocketNativeWrapper with _ServiceObject {
external static void _nativeFatal(msg);
}
class _RawServerSocket extends Stream<RawSocket> implements RawServerSocket {
class _RawServerSocket extends Stream<RawSocket>
implements RawServerSocket, _RawSocketBase {
final _NativeSocket _socket;
StreamController<RawSocket>? _controller;
bool _v6Only;
@ -1802,12 +1803,15 @@ class _RawServerSocket extends Stream<RawSocket> implements RawServerSocket {
}
}
bool get _closedReadEventSent => _socket.closedReadEventSent;
void set _owner(owner) {
_socket.owner = owner;
}
}
class _RawSocket extends Stream<RawSocketEvent> implements RawSocket {
class _RawSocket extends Stream<RawSocketEvent>
implements RawSocket, _RawSocketBase {
final _NativeSocket _socket;
final _controller = new StreamController<RawSocketEvent>(sync: true);
bool _readEventsEnabled = true;
@ -1990,6 +1994,8 @@ class _RawSocket extends Stream<RawSocketEvent> implements RawSocket {
}
}
bool get _closedReadEventSent => _socket.closedReadEventSent;
void set _owner(owner) {
_socket.owner = owner;
}

View file

@ -266,6 +266,6 @@ class RawSecureServerSocket extends Stream<RawSecureSocket> {
}
void set _owner(owner) {
(_socket as dynamic)._owner = owner;
(_socket as _RawSocketBase)._owner = owner;
}
}

View file

@ -478,6 +478,13 @@ class _FilterStatus {
_FilterStatus();
}
// Interface used by [RawSecureServerSocket] and [_RawSecureSocket] that exposes
// members of [_NativeSocket].
abstract class _RawSocketBase {
bool get _closedReadEventSent;
void set _owner(owner);
}
class _RawSecureSocket extends Stream<RawSocketEvent>
implements RawSecureSocket {
// Status states
@ -628,8 +635,7 @@ class _RawSecureSocket extends Stream<RawSocketEvent>
}
// If we are upgrading a socket that is already closed for read,
// report an error as if we received readClosed during the handshake.
dynamic s = _socket; // Cast to dynamic to avoid warning.
if (s._socket.closedReadEventSent) {
if ((_socket as _RawSocketBase)._closedReadEventSent) {
_eventDispatcher(RawSocketEvent.readClosed);
}
_socketSubscription
@ -684,7 +690,7 @@ class _RawSecureSocket extends Stream<RawSocketEvent>
int get remotePort => _socket.remotePort;
void set _owner(owner) {
(_socket as dynamic)._owner = owner;
(_socket as _RawSocketBase)._owner = owner;
}
int available() {