trace: Distinguish semantic version for binary version.
Binary version describes how to read the trace. Semantic version
describes how to interpret the calls in the trace.
Binary version can change as a trace gets trimmed/edited/etc. But
the semantic version should remain constant.
diff --git a/lib/trace/trace_parser.hpp b/lib/trace/trace_parser.hpp
index dad9f9c..25d8121 100644
--- a/lib/trace/trace_parser.hpp
+++ b/lib/trace/trace_parser.hpp
@@ -62,7 +62,7 @@
class Parser: public AbstractParser
{
protected:
- File *file;
+ File *file = nullptr;
enum Mode {
FULL = 0,
@@ -105,13 +105,17 @@
BitmaskMap bitmasks;
StackFrameMap frames;
- FunctionSig *glGetErrorSig;
- unsigned next_call_no;
+ FunctionSig *glGetErrorSig = nullptr;
- unsigned long long version;
+ int next_event_type = -1;
+ unsigned next_call_no = 0;
+
+ unsigned long long version = 0;
+ unsigned long long semanticVersion = 0;
+
public:
- API api;
+ API api = API_UNKNOWN;
Parser();
@@ -135,7 +139,7 @@
void setBookmark(const ParseBookmark &bookmark) override;
unsigned long long getVersion(void) const override {
- return version;
+ return semanticVersion;
}
int percentRead()