X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=common%2Ftrace_parser.cpp;fp=common%2Ftrace_parser.cpp;h=3b159017eabc4c5b5be76d7e138d14ee320bff39;hb=112a1329ecceaca7386369a1cc685af44dd34738;hp=0e4fba098db597d4e782251e7149d7c36ee80a0c;hpb=7c7c9061a2862dd9238607df2693ff9451412dce;p=apitrace diff --git a/common/trace_parser.cpp b/common/trace_parser.cpp index 0e4fba0..3b15901 100644 --- a/common/trace_parser.cpp +++ b/common/trace_parser.cpp @@ -557,6 +557,9 @@ Value *Parser::parse_value(void) { case trace::TYPE_OPAQUE: value = parse_opaque(); break; + case trace::TYPE_REPR: + value = parse_repr(); + break; default: std::cerr << "error: unknown type " << c << "\n"; exit(1); @@ -613,6 +616,9 @@ void Parser::scan_value(void) { case trace::TYPE_OPAQUE: scan_opaque(); break; + case trace::TYPE_REPR: + scan_repr(); + break; default: std::cerr << "error: unknown type " << c << "\n"; exit(1); @@ -784,6 +790,19 @@ void Parser::scan_opaque() { } +Value *Parser::parse_repr() { + Value *humanValue = parse_value(); + Value *machineValue = parse_value(); + return new Repr(humanValue, machineValue); +} + + +void Parser::scan_repr() { + scan_value(); + scan_value(); +} + + const char * Parser::read_string(void) { size_t len = read_uint(); char * value = new char[len + 1];