Skip to content

Commit 446ee14

Browse files
kallentuCommit Queue
authored and
Commit Queue
committed
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 <[email protected]> Commit-Queue: Kallen Tu <[email protected]>
1 parent e4a8525 commit 446ee14

File tree

4 files changed

+18
-13
lines changed

4 files changed

+18
-13
lines changed

pkg/compiler/test/analyses/api_allowed.json

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,6 @@
2121
"Dynamic invocation of '[]'.": 1,
2222
"Dynamic invocation of 'toLowerCase'.": 1
2323
},
24-
"org-dartlang-sdk:///lib/io/secure_server_socket.dart": {
25-
"Dynamic update to 'dart.io::_owner'.": 1
26-
},
27-
"org-dartlang-sdk:///lib/io/secure_socket.dart": {
28-
"Dynamic access of 'closedReadEventSent'.": 1,
29-
"Dynamic update to 'dart.io::_owner'.": 1
30-
},
3124
"org-dartlang-sdk:///lib/_internal/js_runtime/lib/js_patch.dart": {
3225
"Dynamic invocation of '[]'.": 1
3326
},

sdk/lib/_internal/vm/bin/socket_patch.dart

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1721,7 +1721,8 @@ class _NativeSocket extends _NativeSocketNativeWrapper with _ServiceObject {
17211721
external static void _nativeFatal(msg);
17221722
}
17231723

1724-
class _RawServerSocket extends Stream<RawSocket> implements RawServerSocket {
1724+
class _RawServerSocket extends Stream<RawSocket>
1725+
implements RawServerSocket, _RawSocketBase {
17251726
final _NativeSocket _socket;
17261727
StreamController<RawSocket>? _controller;
17271728
bool _v6Only;
@@ -1802,12 +1803,15 @@ class _RawServerSocket extends Stream<RawSocket> implements RawServerSocket {
18021803
}
18031804
}
18041805

1806+
bool get _closedReadEventSent => _socket.closedReadEventSent;
1807+
18051808
void set _owner(owner) {
18061809
_socket.owner = owner;
18071810
}
18081811
}
18091812

1810-
class _RawSocket extends Stream<RawSocketEvent> implements RawSocket {
1813+
class _RawSocket extends Stream<RawSocketEvent>
1814+
implements RawSocket, _RawSocketBase {
18111815
final _NativeSocket _socket;
18121816
final _controller = new StreamController<RawSocketEvent>(sync: true);
18131817
bool _readEventsEnabled = true;
@@ -1990,6 +1994,8 @@ class _RawSocket extends Stream<RawSocketEvent> implements RawSocket {
19901994
}
19911995
}
19921996

1997+
bool get _closedReadEventSent => _socket.closedReadEventSent;
1998+
19931999
void set _owner(owner) {
19942000
_socket.owner = owner;
19952001
}

sdk/lib/io/secure_server_socket.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,6 @@ class RawSecureServerSocket extends Stream<RawSecureSocket> {
266266
}
267267

268268
void set _owner(owner) {
269-
(_socket as dynamic)._owner = owner;
269+
(_socket as _RawSocketBase)._owner = owner;
270270
}
271271
}

sdk/lib/io/secure_socket.dart

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -478,6 +478,13 @@ class _FilterStatus {
478478
_FilterStatus();
479479
}
480480

481+
// Interface used by [RawSecureServerSocket] and [_RawSecureSocket] that exposes
482+
// members of [_NativeSocket].
483+
abstract class _RawSocketBase {
484+
bool get _closedReadEventSent;
485+
void set _owner(owner);
486+
}
487+
481488
class _RawSecureSocket extends Stream<RawSocketEvent>
482489
implements RawSecureSocket {
483490
// Status states
@@ -628,8 +635,7 @@ class _RawSecureSocket extends Stream<RawSocketEvent>
628635
}
629636
// If we are upgrading a socket that is already closed for read,
630637
// report an error as if we received readClosed during the handshake.
631-
dynamic s = _socket; // Cast to dynamic to avoid warning.
632-
if (s._socket.closedReadEventSent) {
638+
if ((_socket as _RawSocketBase)._closedReadEventSent) {
633639
_eventDispatcher(RawSocketEvent.readClosed);
634640
}
635641
_socketSubscription
@@ -684,7 +690,7 @@ class _RawSecureSocket extends Stream<RawSocketEvent>
684690
int get remotePort => _socket.remotePort;
685691

686692
void set _owner(owner) {
687-
(_socket as dynamic)._owner = owner;
693+
(_socket as _RawSocketBase)._owner = owner;
688694
}
689695

690696
int available() {

0 commit comments

Comments
 (0)