Parser::Parser() {
- file = new Trace::ZLibFile;
+ file = NULL;
next_call_no = 0;
version = 0;
}
Parser::~Parser() {
close();
- delete file;
}
bool Parser::open(const char *filename) {
+ assert(!file);
+ if (File::isZLibCompressed(filename)) {
+ file = new ZLibFile;
+ } else {
+ file = new SnappyFile;
+ }
+
if (!file->open(filename, File::Read)) {
return false;
}
void Parser::close(void) {
file->close();
+ delete file;
+ file = NULL;
deleteAll(calls);
deleteAll(functions);