[過去ログ]
C#, C♯, C#相談室 Part96 (1002レス)
C#, C♯, C#相談室 Part96 http://mevius.5ch.net/test/read.cgi/tech/1639965805/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
155: デフォルトの名無しさん (ワッチョイ 1232-IMun) [sage] 2022/03/16(水) 01:45:02.44 ID:lykY2TTP0 >>153-154 仰る通りです ECMA-335の文言"Managed pointers cannot be null"で検索してみたら案の定ツッコミありましたが https://github.com/dotnet/runtime/issues/41418#issuecomment-681177889 これを受けてか、トップのNullRef<T>()に関する注釈にも (10) Per ECMA-335, Sec. II.14.4.2, it is not strictly legal for a gcref to point to null. However, all .NET runtimes allow this and treat it in a type-safe fashion, including guarding accesses to null gcrefs by throwing NullReferenceException as appropriate. と書かれていて問題なさそうな見解です 仕様に準拠していないというのは…JITコンパイラ的にどうなのか 言及を忘れていましたが、アセンブリにコード欠落は見受けられないのでC#コンパイラの問題ではないし AddByteOffset<T>(ref T, IntPtr)にしても関連する注釈は (1) Arithmetic operations on gcrefs (such as via Unsafe.Add) are not checked for correctness by the runtime. The resulting gcref may point to invalid memory or to a different object. See ECMA-335, Sec. III.1.5. のみですし、また前項と合わせてECMA-335が示されていますから、ILと無関係でもないでしょう System.Runtime.CompilerServices.Unsafe.dllをデコンパイルしてみてもコメントと同じコードが示されます Framework時代ならSafeBuffer継承とかやってましたが(SafeMemoryMappedViewHandleはコンストラクタがinternalなので) これもこれで今見たら「SafeBuffer may be unavailable in future releases.」で笑えぬ http://mevius.5ch.net/test/read.cgi/tech/1639965805/155
157: デフォルトの名無しさん (ワッチョイ 1232-IMun) [sage] 2022/03/16(水) 15:09:58.97 ID:lykY2TTP0 >>137>>153 よくよく調べてみたらズバリそのものが有りました https://github.com/dotnet/runtime/issues/61510 >>156で言われている様な主旨のコメントもありますね 元コードの添え書きを見るに意図されたものと見受けられますが ぬるぽを多少オフセットした所でデリファンレスしたら一緒という事でしょうか 昨年の時点で修正が入っていますが、マイルストーンは7.0.0とされ6.0.3でも取りこまれていません https://github.com/dotnet/runtime/blob/v6.0.3/src/coreclr/jit/morph.cpp#L12906-L12918 .NET 7.0 Previewにはマージされており、その後さらに周辺コードはリファクタリングされ移動しています https://github.com/dotnet/runtime/commit/132cc2f2d00e00b7f0dfd43498077da65cc27d29#diff-5b83397bbbdd17bb9457998b520fdaaa474d165390985b66f32371561b6d0bacR13505 まぁやはり本来は相対オフセットが期待されるところですから 絶対オフセットではなく大人しくAsRefを使うべきなのかもしれません http://mevius.5ch.net/test/read.cgi/tech/1639965805/157
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.493s*