Remove unnecessary MemoryStream allocation from ByteArrayContent (#35005)
authorStephen Toub <stoub@microsoft.com>
Wed, 15 Apr 2020 20:52:22 +0000 (16:52 -0400)
committerGitHub <noreply@github.com>
Wed, 15 Apr 2020 20:52:22 +0000 (16:52 -0400)
commit5395b14eb4b924419b3d4732582a22ac72571d9f
tree897c2f3d06af2b38bc2079ce58bbca6064212d9f
parenta6e9098ffc9adf987be1e4dbe12589b75f46dd1d
Remove unnecessary MemoryStream allocation from ByteArrayContent (#35005)

Constructing a ByteArrayContent (or anything that derives from it, like StringContent) or a ReadOnlyMemoryContent  proactively allocates a MemoryStream that it stores as the _bufferedContent on the base HttpContent.  But the 99.99% use case for ByteArrayContent is as a request payload, and this _bufferedContent isn't used for that.  The only time this would be used is if a developer created a ByteArrayContent and then explicitly got the stream from it, e.g. via GetStreamAsync, in which case we're no worse off by doing the creation lazily.  This PR just deletes the unnecessary code / allocation.
src/libraries/System.Net.Http/src/System/Net/Http/ByteArrayContent.cs
src/libraries/System.Net.Http/src/System/Net/Http/HttpContent.cs
src/libraries/System.Net.Http/src/System/Net/Http/ReadOnlyMemoryContent.cs