Internal change
PiperOrigin-RevId: 486232020
diff --git a/quiche/quic/core/quic_interval_set.h b/quiche/quic/core/quic_interval_set.h
index 7de0362..11d0270 100644
--- a/quiche/quic/core/quic_interval_set.h
+++ b/quiche/quic/core/quic_interval_set.h
@@ -55,13 +55,15 @@
#include <algorithm>
#include <initializer_list>
#include <set>
+#include <sstream>
#include <string>
#include <utility>
#include <vector>
#include "quiche/quic/core/quic_interval.h"
-#include "quiche/quic/platform/api/quic_logging.h"
+#include "quiche/quic/platform/api/quic_flags.h"
#include "quiche/common/platform/api/quiche_containers.h"
+#include "quiche/common/platform/api/quiche_logging.h"
namespace quic {
@@ -126,7 +128,7 @@
// Same semantics as Add(const value_type&), but optimized for the case where
// rbegin()->min() <= |interval|.min() <= rbegin()->max().
void AddOptimizedForAppend(const value_type& interval) {
- if (Empty()) {
+ if (Empty() || !GetQuicFlag(quic_interval_set_enable_add_optimization)) {
Add(interval);
return;
}
diff --git a/quiche/quic/core/quic_protocol_flags_list.h b/quiche/quic/core/quic_protocol_flags_list.h
index a94fbc6..1c92890 100644
--- a/quiche/quic/core/quic_protocol_flags_list.h
+++ b/quiche/quic/core/quic_protocol_flags_list.h
@@ -218,4 +218,8 @@
QUIC_PROTOCOL_FLAG(bool, quic_bounded_crypto_send_buffer, false,
"If true, close the connection if a crypto send buffer "
"exceeds its size limit.")
+
+QUIC_PROTOCOL_FLAG(bool, quic_interval_set_enable_add_optimization, true,
+ "If true, enable an optimization in QuicIntervalSet")
+
#endif