Uh oh!
There was an error while loading. Please reload this page.
Refactor MsQuic's native IP address types. - #53461
Conversation
ghost
commented
May 29, 2021
Tagging subscribers to this area: @dotnet/ncl Issue Details
This PR changes these properties to return read-only spans, avoiding the allocation of an byte array. A similar trick is already performed on the spans returned by the
|
stephentoub
left a comment
There was a problem hiding this comment.
LGTM, based on current usage. This becomes very unsafe if that span is passed out to a different scope than the struct was defined, so usage of this property needs to be scrutinized heavily moving forward.
teo-tsirpanis
commented
May 29, 2021
I got another idea. We could add a |
stephentoub
commented
May 29, 2021
My preference actually would be for the _addr fields to instead by a fixed buffer pointer (e.g. |
teo-tsirpanis
commented
May 29, 2021
OK @stephentoub, I applied your suggestions; they turned out to allow optimizing the |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
And handle them more efficiently when moving between them and .NET's IPAddresses.
stephentoub
commented
May 30, 2021
cc: @dotnet/ncl |
Uh oh!
There was an error while loading. Please reload this page.
…asm_debugger_and_use_debugger_agent * upstream/main: (597 commits) Fix42292 (dotnet#52463) [mono] Remove some obsolete emscripten flags. (dotnet#53486) Fixed path to projects (dotnet#53435) support ServerCertificateContext in quic (dotnet#53175) Socket: delete unix local endpoint filename on Close (dotnet#52103) [mono] Fix sgen_gc_info.memory_load_bytes (dotnet#53364) Refactor MsQuic's native IP address types. (dotnet#53461) Re-enabled optimizations for gtFoldExprConst (dotnet#53347) Add diagnostic support into sample app and AppBuilders on Mono. (dotnet#53361) Fix issues with virtuals and mdarrays (dotnet#53400) Split Variant marshalling tests (dotnet#53035) Update clrjit.natvis to cover GT_SIMD and GT_HWINTRINSIC (dotnet#53470) remove WSL checks in tests (dotnet#53475) Always spawn message loop thread for SystemEvents (dotnet#53467) add AcceptAsync cancellation overloads (dotnet#53340) Remove unnecessary reference to iOS workload pack in the Mono workload (dotnet#53425) Add CookieContainer.GetAllCookies (dotnet#53441) Remove DynamicallyAccessedMembers on JsonSerializer (dotnet#53235) [wasm] Re-enable Wasm.Build.Tests (dotnet#53433) [libraries] Move library tests Feature Switches defaults to Functional tests (dotnet#53253) ...
Assuming that GetAddressBytes() does not have side effects, this call should not be needed. Clean up from #53461
MsQuicAddressHelpers.INetToIPEndPointpasses byte arrays to theIPAddress' constructor which were allocated by theAddressproperties of theMsQuicNativeMethods+SOCKADDR_IN(6) structs. There are no other uses of these properties.This PR changes these properties to return read-only spans, avoiding the allocation of an byte array.
A similar trick is already performed on the spans returned by the
System.GCMemorytype.