Merge "tp: fix a bunch of bugs in ProtoLogParser" into main
diff --git a/src/trace_processor/importers/proto/winscope/protolog_parser.cc b/src/trace_processor/importers/proto/winscope/protolog_parser.cc
index 9fc82be..a95777d 100644
--- a/src/trace_processor/importers/proto/winscope/protolog_parser.cc
+++ b/src/trace_processor/importers/proto/winscope/protolog_parser.cc
@@ -279,10 +279,11 @@
formatted_message.append(*str_params_itr);
++str_params_itr;
break;
- case 'b':
- formatted_message.append(*boolean_params_itr ? "true" : "false");
- ++boolean_params_itr;
- break;
+ }
+ case 'b': {
+ formatted_message.append(*boolean_params_itr ? "true" : "false");
+ ++boolean_params_itr;
+ break;
}
default:
// Should never happen
diff --git a/ui/src/controller/flamegraph_controller.ts b/ui/src/controller/flamegraph_controller.ts
index 22365ad..22160d6 100644
--- a/ui/src/controller/flamegraph_controller.ts
+++ b/ui/src/controller/flamegraph_controller.ts
@@ -106,6 +106,10 @@
}
return tableName;
}
+
+ hasQuery(query: string): boolean {
+ return this.cache.get(query) !== undefined;
+ }
}
export class FlamegraphController extends Controller<'main'> {
@@ -536,6 +540,10 @@
private async loadHeapGraphDominatorTreeQuery(upid: number, timestamp: time) {
const outputTableName = `heap_graph_type_dominated_${upid}_${timestamp}`;
+ const outputQuery = `SELECT * FROM ${outputTableName}`;
+ if (this.cache.hasQuery(outputQuery)) {
+ return outputQuery;
+ }
this.args.engine.query(`
INCLUDE PERFETTO MODULE memory.heap_graph_dominator_tree;
@@ -611,7 +619,7 @@
DROP TABLE _dominator_tree_path_hash;
`);
- return `SELECT * FROM ${outputTableName}`;
+ return outputQuery;
}
getMinSizeDisplayed(