Balsa: make invalid header char table builders constexpr.

This seems to help with CPU utilization in loadtests.

Protected by optimization with no functional change; not protected.

PiperOrigin-RevId: 760684491
diff --git a/quiche/balsa/header_properties.cc b/quiche/balsa/header_properties.cc
index b72fe19..5c08f6f 100644
--- a/quiche/balsa/header_properties.cc
+++ b/quiche/balsa/header_properties.cc
@@ -65,7 +65,7 @@
   return multivalued_headers;
 }
 
-std::array<bool, 256> buildInvalidHeaderKeyCharLookupTable() {
+constexpr std::array<bool, 256> buildInvalidHeaderKeyCharLookupTable() {
   std::array<bool, 256> invalidCharTable;
   invalidCharTable.fill(false);
   for (uint8_t c : kInvalidHeaderKeyCharList) {
@@ -74,7 +74,8 @@
   return invalidCharTable;
 }
 
-std::array<bool, 256> buildInvalidHeaderKeyCharLookupTableAllowDoubleQuote() {
+constexpr std::array<bool, 256>
+buildInvalidHeaderKeyCharLookupTableAllowDoubleQuote() {
   std::array<bool, 256> invalidCharTable;
   invalidCharTable.fill(false);
   for (uint8_t c : kInvalidHeaderKeyCharListAllowDoubleQuote) {
@@ -83,7 +84,7 @@
   return invalidCharTable;
 }
 
-std::array<bool, 256> buildInvalidCharLookupTable() {
+constexpr std::array<bool, 256> buildInvalidCharLookupTable() {
   std::array<bool, 256> invalidCharTable;
   invalidCharTable.fill(false);
   for (uint8_t c : kInvalidHeaderCharList) {
@@ -92,7 +93,7 @@
   return invalidCharTable;
 }
 
-std::array<bool, 256> buildInvalidPathCharLookupTable() {
+constexpr std::array<bool, 256> buildInvalidPathCharLookupTable() {
   std::array<bool, 256> invalidCharTable;
   invalidCharTable.fill(true);
   for (uint8_t c : kValidPathCharList) {
@@ -101,7 +102,7 @@
   return invalidCharTable;
 }
 
-std::array<bool, 256> buildInvalidQueryCharLookupTable() {
+constexpr std::array<bool, 256> buildInvalidQueryCharLookupTable() {
   std::array<bool, 256> invalidCharTable;
   invalidCharTable.fill(true);
   for (uint8_t c : kValidQueryCharList) {