Pass StringValues via in (#2295)

This commit is contained in:
Ben Adams 2018-03-01 03:54:44 +00:00 committed by David Fowler
parent 2c108d9ba1
commit 300453396a
5 changed files with 21 additions and 21 deletions

View File

@ -1252,7 +1252,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
return MaybeUnknown?.TryGetValue(key, out value) ?? false; return MaybeUnknown?.TryGetValue(key, out value) ?? false;
} }
protected override void SetValueFast(string key, StringValues value) protected override void SetValueFast(string key, in StringValues value)
{ {
switch (key.Length) switch (key.Length)
{ {
@ -1600,7 +1600,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
SetValueUnknown(key, value); SetValueUnknown(key, value);
} }
protected override bool AddValueFast(string key, StringValues value) protected override bool AddValueFast(string key, in StringValues value)
{ {
switch (key.Length) switch (key.Length)
{ {
@ -5411,25 +5411,25 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
} }
} }
public void SetRawConnection(StringValues value, byte[] raw) public void SetRawConnection(in StringValues value, byte[] raw)
{ {
_bits |= 2L; _bits |= 2L;
_headers._Connection = value; _headers._Connection = value;
_headers._rawConnection = raw; _headers._rawConnection = raw;
} }
public void SetRawDate(StringValues value, byte[] raw) public void SetRawDate(in StringValues value, byte[] raw)
{ {
_bits |= 4L; _bits |= 4L;
_headers._Date = value; _headers._Date = value;
_headers._rawDate = raw; _headers._rawDate = raw;
} }
public void SetRawTransferEncoding(StringValues value, byte[] raw) public void SetRawTransferEncoding(in StringValues value, byte[] raw)
{ {
_bits |= 64L; _bits |= 64L;
_headers._TransferEncoding = value; _headers._TransferEncoding = value;
_headers._rawTransferEncoding = raw; _headers._rawTransferEncoding = raw;
} }
public void SetRawServer(StringValues value, byte[] raw) public void SetRawServer(in StringValues value, byte[] raw)
{ {
_bits |= 33554432L; _bits |= 33554432L;
_headers._Server = value; _headers._Server = value;
@ -5849,7 +5849,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
return MaybeUnknown?.TryGetValue(key, out value) ?? false; return MaybeUnknown?.TryGetValue(key, out value) ?? false;
} }
protected override void SetValueFast(string key, StringValues value) protected override void SetValueFast(string key, in StringValues value)
{ {
ValidateHeaderCharacters(value); ValidateHeaderCharacters(value);
switch (key.Length) switch (key.Length)
@ -6154,7 +6154,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
SetValueUnknown(key, value); SetValueUnknown(key, value);
} }
protected override bool AddValueFast(string key, StringValues value) protected override bool AddValueFast(string key, in StringValues value)
{ {
ValidateHeaderCharacters(value); ValidateHeaderCharacters(value);
switch (key.Length) switch (key.Length)

View File

@ -107,7 +107,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
} }
[MethodImpl(MethodImplOptions.NoInlining)] [MethodImpl(MethodImplOptions.NoInlining)]
protected static StringValues AppendValue(StringValues existing, string append) protected static StringValues AppendValue(in StringValues existing, string append)
{ {
return StringValues.Concat(existing, append); return StringValues.Concat(existing, append);
} }
@ -134,10 +134,10 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
protected virtual bool TryGetValueFast(string key, out StringValues value) protected virtual bool TryGetValueFast(string key, out StringValues value)
{ throw new NotImplementedException(); } { throw new NotImplementedException(); }
protected virtual void SetValueFast(string key, StringValues value) protected virtual void SetValueFast(string key, in StringValues value)
{ throw new NotImplementedException(); } { throw new NotImplementedException(); }
protected virtual bool AddValueFast(string key, StringValues value) protected virtual bool AddValueFast(string key, in StringValues value)
{ throw new NotImplementedException(); } { throw new NotImplementedException(); }
protected virtual bool RemoveFast(string key) protected virtual bool RemoveFast(string key)
@ -234,7 +234,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
return TryGetValueFast(key, out value); return TryGetValueFast(key, out value);
} }
public static void ValidateHeaderCharacters(StringValues headerValues) public static void ValidateHeaderCharacters(in StringValues headerValues)
{ {
var count = headerValues.Count; var count = headerValues.Count;
for (var i = 0; i < count; i++) for (var i = 0; i < count; i++)
@ -258,7 +258,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
} }
} }
public static unsafe ConnectionOptions ParseConnection(StringValues connection) public static unsafe ConnectionOptions ParseConnection(in StringValues connection)
{ {
var connectionOptions = ConnectionOptions.None; var connectionOptions = ConnectionOptions.None;
@ -360,7 +360,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
return connectionOptions; return connectionOptions;
} }
public static unsafe TransferCoding GetFinalTransferCoding(StringValues transferEncoding) public static unsafe TransferCoding GetFinalTransferCoding(in StringValues transferEncoding)
{ {
var transferEncodingOptions = TransferCoding.None; var transferEncodingOptions = TransferCoding.None;

View File

@ -26,7 +26,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
} }
[MethodImpl(MethodImplOptions.NoInlining)] [MethodImpl(MethodImplOptions.NoInlining)]
private void SetValueUnknown(string key, StringValues value) private void SetValueUnknown(string key, in StringValues value)
{ {
Unknown[key] = value; Unknown[key] = value;
} }

View File

@ -68,7 +68,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
} }
[MethodImpl(MethodImplOptions.NoInlining)] [MethodImpl(MethodImplOptions.NoInlining)]
private void SetValueUnknown(string key, StringValues value) private void SetValueUnknown(string key, in StringValues value)
{ {
ValidateHeaderCharacters(key); ValidateHeaderCharacters(key);
Unknown[key] = value; Unknown[key] = value;
@ -93,11 +93,11 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
_collection = collection; _collection = collection;
_bits = collection._bits; _bits = collection._bits;
_state = 0; _state = 0;
_current = default(KeyValuePair<string, StringValues>); _current = default;
_hasUnknown = collection.MaybeUnknown != null; _hasUnknown = collection.MaybeUnknown != null;
_unknownEnumerator = _hasUnknown _unknownEnumerator = _hasUnknown
? collection.MaybeUnknown.GetEnumerator() ? collection.MaybeUnknown.GetEnumerator()
: default(Dictionary<string, StringValues>.Enumerator); : default;
} }
public KeyValuePair<string, StringValues> Current => _current; public KeyValuePair<string, StringValues> Current => _current;

View File

@ -344,7 +344,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
}}")} }}")}
}}")} }}")}
{Each(loop.Headers.Where(header => header.EnhancedSetter), header => $@" {Each(loop.Headers.Where(header => header.EnhancedSetter), header => $@"
public void SetRaw{header.Identifier}(StringValues value, byte[] raw) public void SetRaw{header.Identifier}(in StringValues value, byte[] raw)
{{ {{
{header.SetBit()}; {header.SetBit()};
_headers._{header.Identifier} = value; _headers._{header.Identifier} = value;
@ -383,7 +383,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
return MaybeUnknown?.TryGetValue(key, out value) ?? false; return MaybeUnknown?.TryGetValue(key, out value) ?? false;
}} }}
protected override void SetValueFast(string key, StringValues value) protected override void SetValueFast(string key, in StringValues value)
{{{(loop.ClassName == "HttpResponseHeaders" ? @" {{{(loop.ClassName == "HttpResponseHeaders" ? @"
ValidateHeaderCharacters(value);" : "")} ValidateHeaderCharacters(value);" : "")}
switch (key.Length) switch (key.Length)
@ -405,7 +405,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http
SetValueUnknown(key, value); SetValueUnknown(key, value);
}} }}
protected override bool AddValueFast(string key, StringValues value) protected override bool AddValueFast(string key, in StringValues value)
{{{(loop.ClassName == "HttpResponseHeaders" ? @" {{{(loop.ClassName == "HttpResponseHeaders" ? @"
ValidateHeaderCharacters(value);" : "")} ValidateHeaderCharacters(value);" : "")}
switch (key.Length) switch (key.Length)