@@ -80,7 +80,7 @@ public HeadersMultiMap(BiConsumer<CharSequence, CharSequence> validator) {
8080
8181 public HeadersMultiMap add (CharSequence name , CharSequence value ) {
8282 Objects .requireNonNull (value );
83- int h = AsciiString . hashCode (name );
83+ int h = hashCode (name );
8484 int i = h & 0x0000000F ;
8585 add0 (h , i , name , value );
8686 return this ;
@@ -102,7 +102,7 @@ public HeadersMultiMap add(String name, String strVal) {
102102
103103 @ Override
104104 public HeadersMultiMap add (CharSequence name , Iterable values ) {
105- int h = AsciiString . hashCode (name );
105+ int h = hashCode (name );
106106 int i = h & 0x0000000F ;
107107 for (Object vstr : values ) {
108108 add0 (h , i , name , toValidCharSequence (vstr ));
@@ -118,7 +118,7 @@ public HeadersMultiMap add(String name, Iterable values) {
118118 @ Override
119119 public HeadersMultiMap remove (CharSequence name ) {
120120 Objects .requireNonNull (name , "name" );
121- int h = AsciiString . hashCode (name );
121+ int h = hashCode (name );
122122 int i = h & 0x0000000F ;
123123 remove0 (h , i , name );
124124 return this ;
@@ -151,7 +151,7 @@ public HeadersMultiMap set(CharSequence name, Object value) {
151151 public HeadersMultiMap set (CharSequence name , Iterable values ) {
152152 Objects .requireNonNull (values , "values" );
153153
154- int h = AsciiString . hashCode (name );
154+ int h = hashCode (name );
155155 int i = h & 0x0000000F ;
156156
157157 remove0 (h , i , name );
@@ -182,7 +182,7 @@ public boolean contains(CharSequence name, CharSequence value, boolean ignoreCas
182182
183183 private boolean containsInternal (
184184 CharSequence name , CharSequence value , boolean equals , boolean ignoreCase ) {
185- int h = AsciiString . hashCode (name );
185+ int h = hashCode (name );
186186 int i = h & 0x0000000F ;
187187 HeadersMultiMap .MapEntry e = entries [i ];
188188 while (e != null ) {
@@ -257,7 +257,7 @@ public String get(String name) {
257257 public List <String > getAll (CharSequence name ) {
258258 Objects .requireNonNull (name , "name" );
259259 LinkedList <String > values = null ;
260- int h = AsciiString . hashCode (name );
260+ int h = hashCode (name );
261261 int i = h & 0x0000000F ;
262262 HeadersMultiMap .MapEntry e = entries [i ];
263263 while (e != null ) {
@@ -606,7 +606,7 @@ private void add0(int h, int i, final CharSequence name, final CharSequence valu
606606 }
607607
608608 private HeadersMultiMap set0 (final CharSequence name , final CharSequence strVal ) {
609- int h = AsciiString . hashCode (name );
609+ int h = hashCode (name );
610610 int i = h & 0x0000000F ;
611611 remove0 (h , i , name );
612612 if (strVal != null ) {
@@ -616,7 +616,7 @@ private HeadersMultiMap set0(final CharSequence name, final CharSequence strVal)
616616 }
617617
618618 private CharSequence get0 (CharSequence name ) {
619- int h = AsciiString . hashCode (name );
619+ int h = hashCode (name );
620620 int i = h & 0x0000000F ;
621621 HeadersMultiMap .MapEntry e = entries [i ];
622622 CharSequence value = null ;
@@ -629,4 +629,8 @@ private CharSequence get0(CharSequence name) {
629629 }
630630 return value ;
631631 }
632+
633+ private int hashCode (CharSequence value ) {
634+ return value instanceof NettyString str ? str .hashCode () : AsciiString .hashCode (value );
635+ }
632636}
0 commit comments