Kaynağa Gözat

claude suggests this bound checking optimization

it is about 4.4% better on the bench-cpu-long cpu usage test
Jay Wren 1 yıl önce
ebeveyn
işleme
0827a6f1c5
1 değiştirilmiş dosya ile 5 ekleme ve 4 silme
  1. 5 4
      outside.go

+ 5 - 4
outside.go

@@ -333,12 +333,13 @@ func parseV6(data []byte, incoming bool, fp *firewall.Packet) error {
 			}
 
 			fp.Protocol = uint8(proto)
+			ports := data[offset : offset+4]
 			if incoming {
-				fp.RemotePort = binary.BigEndian.Uint16(data[offset : offset+2])
-				fp.LocalPort = binary.BigEndian.Uint16(data[offset+2 : offset+4])
+				fp.RemotePort = binary.BigEndian.Uint16(ports[0:2])
+				fp.LocalPort = binary.BigEndian.Uint16(ports[2:4])
 			} else {
-				fp.LocalPort = binary.BigEndian.Uint16(data[offset : offset+2])
-				fp.RemotePort = binary.BigEndian.Uint16(data[offset+2 : offset+4])
+				fp.LocalPort = binary.BigEndian.Uint16(ports[0:2])
+				fp.RemotePort = binary.BigEndian.Uint16(ports[2:4])
 			}
 
 			fp.Fragment = false