perfetto-ui: Avoid setting window_dur to 0ns
Setting window_dur=0 on a window table breaks the table forever so avoid
doing that from the UI.
Since the API for updating a window table is:
update set window_dur = X where row_id = 0;
If the table ever ends up with zero rows it can never be updated as we
don't have a row where row_id = 0 (or indeed any value) and when
window_dur = 0 the table doesn't return any rows.
Change-Id: I456c5835f9d7d5e709e9c8dffc54f536d9a7e045
diff --git a/ui/src/tracks/cpu_slices/controller.ts b/ui/src/tracks/cpu_slices/controller.ts
index 26e46ba..bb987f9 100644
--- a/ui/src/tracks/cpu_slices/controller.ts
+++ b/ui/src/tracks/cpu_slices/controller.ts
@@ -63,7 +63,7 @@
if (isQuantized) {
windowStartNs = Math.floor(windowStartNs / bucketSizeNs) * bucketSizeNs;
}
- const windowDurNs = endNs - windowStartNs;
+ const windowDurNs = Math.max(1, endNs - windowStartNs);
this.query(`update window_${this.trackState.id} set
window_start=${windowStartNs},
diff --git a/ui/src/tracks/process_summary/controller.ts b/ui/src/tracks/process_summary/controller.ts
index 462b525..b61838f 100644
--- a/ui/src/tracks/process_summary/controller.ts
+++ b/ui/src/tracks/process_summary/controller.ts
@@ -66,7 +66,7 @@
// |resolution| is in s/px we want # ns for 10px window:
const bucketSizeNs = Math.round(resolution * 10 * 1e9);
const windowStartNs = Math.floor(startNs / bucketSizeNs) * bucketSizeNs;
- const windowDurNs = endNs - windowStartNs;
+ const windowDurNs = Math.max(1, endNs - windowStartNs);
this.query(`update ${this.tableName('window')} set
window_start=${windowStartNs},