Merge "Fix max trace_bounds"
diff --git a/src/trace_processor/storage/trace_storage.cc b/src/trace_processor/storage/trace_storage.cc
index ffa594b..b66ce82 100644
--- a/src/trace_processor/storage/trace_storage.cc
+++ b/src/trace_processor/storage/trace_storage.cc
@@ -34,20 +34,20 @@
if (ts_col.row_map().empty())
return;
- SqlValue col_min = *ts_col.Min();
- SqlValue col_max = *ts_col.Max();
- int64_t last_dur = 0;
+ int64_t col_min = ts_col.Min()->AsLong();
+ int64_t col_max = ts_col.Max()->AsLong();
+
if (dur_col) {
PERFETTO_CHECK(ts_col.IsSorted());
PERFETTO_CHECK(dur_col->row_map().size() == ts_col.row_map().size());
- last_dur = dur_col->Get(ts_col.row_map().size() - 1).long_value;
+ for (uint32_t i = 0; i < dur_col->row_map().size(); i++) {
+ col_max =
+ std::max(ts_col.Get(i).AsLong() + dur_col->Get(i).AsLong(), col_max);
+ }
}
- PERFETTO_DCHECK(col_min.type == SqlValue::Type::kLong);
- PERFETTO_DCHECK(col_max.type == SqlValue::Type::kLong);
-
- *min_value = std::min(*min_value, col_min.long_value);
- *max_value = std::max(*max_value, col_max.long_value + last_dur);
+ *min_value = std::min(*min_value, col_min);
+ *max_value = std::max(*max_value, col_max);
}
std::vector<NullTermStringView> CreateRefTypeStringMap() {