[io/unix-domain-sockets] Ensure runtime-looked up entry points are marked as such.

This is needed to ensure that entry points looked from native code are preserved, not tree-shaken.

This is follow-up to https://dart.googlesource.com/sdk/+/935ee25f3b72e7fe81047220cadae1f61c505da4

Fixes https://github.com/dart-lang/sdk/issues/47416

TEST=unix_socket_test on dartkp bots

Change-Id: I5cf3071507947b1c24b2808e46dc92186e4b9476
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216062
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
This commit is contained in:
Alexander Aprelev 2021-10-08 20:22:28 +00:00 committed by commit-bot@chromium.org
parent 47f9067cad
commit e270bbe95c
4 changed files with 12 additions and 2 deletions

View file

@ -22,6 +22,6 @@ class Class extends core::Object {
synthetic constructor •() → self::Class
: super core::Object::•()
;
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3261,getterSelectorId:3262] method method([@vm.inferred-type.metadata=dart.core::Null? (value: null)] self::Enum e) → core::int
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3266,getterSelectorId:3267] method method([@vm.inferred-type.metadata=dart.core::Null? (value: null)] self::Enum e) → core::int
return [@vm.inferred-type.metadata=!] e.{core::_Enum::index}{core::int};
}

View file

@ -51,6 +51,6 @@ class ConstClass extends core::Object {
synthetic constructor •() → self::ConstClass
: super core::Object::•()
;
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3265,getterSelectorId:3266] method method([@vm.inferred-type.metadata=dart.core::Null? (value: null)] self::ConstEnum e) → core::int
[@vm.procedure-attributes.metadata=methodOrSetterCalledDynamically:false,getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:3270,getterSelectorId:3271] method method([@vm.inferred-type.metadata=dart.core::Null? (value: null)] self::ConstEnum e) → core::int
return [@vm.inferred-type.metadata=!] e.{core::_Enum::index}{core::int};
}

View file

@ -2545,7 +2545,9 @@ class ResourceHandle {
@pragma("vm:entry-point")
class _ResourceHandleImpl implements ResourceHandle {
@pragma("vm:entry-point")
int _handle; // file descriptor on linux
@pragma("vm:entry-point")
_ResourceHandleImpl(this._handle);
@pragma("vm:external-name", "ResourceHandleImpl_toFile")
@ -2572,6 +2574,7 @@ class _ResourceHandleImpl implements ResourceHandle {
@pragma("vm:external-name", "ResourceHandleImpl_toRawDatagramSocket")
external RawDatagramSocket toRawDatagramSocket();
@pragma("vm:entry-point")
static final _ResourceHandleImpl _sentinel = _ResourceHandleImpl(-1);
}
@ -2581,11 +2584,16 @@ class SocketControlMessage {
native "SocketControlMessage_fromHandles";
}
@pragma("vm:entry-point")
class _SocketControlMessageImpl implements SocketControlMessage {
@pragma("vm:entry-point")
final int level;
@pragma("vm:entry-point")
final int type;
@pragma("vm:entry-point")
final Uint8List data;
@pragma("vm:entry-point")
_SocketControlMessageImpl(this.level, this.type, this.data);
@pragma("vm:external-name", "SocketControlMessageImpl_extractHandles")

View file

@ -662,6 +662,7 @@ abstract class _RandomAccessFileOps {
lock(int lock, int start, int end);
}
@pragma("vm:entry-point")
class _RandomAccessFile implements RandomAccessFile {
static bool _connectedResourceHandler = false;
@ -672,6 +673,7 @@ class _RandomAccessFile implements RandomAccessFile {
late _FileResourceInfo _resourceInfo;
_RandomAccessFileOps _ops;
@pragma("vm:entry-point")
_RandomAccessFile(int pointer, this.path)
: _ops = new _RandomAccessFileOps(pointer) {
_resourceInfo = new _FileResourceInfo(this);