Do not skip over unknown elements at the root level

OnUnknownElement() should be called to handle them.

Change-Id: Iebd99631f094e95d0c3e75952930962e15826bac
This commit is contained in:
Michael Bradshaw
2016-08-24 17:37:03 -07:00
parent 837746f4d2
commit 80685d3865
2 changed files with 26 additions and 1 deletions

View File

@@ -13,6 +13,7 @@
#include "src/ebml_parser.h"
#include "src/master_parser.h"
#include "src/segment_parser.h"
#include "src/unknown_parser.h"
#include "webm/element.h"
namespace webm {
@@ -123,7 +124,7 @@ class WebmParser::DocumentParser {
if (child_metadata_.size == kUnknownElementSize) {
return Status(Status::kIndefiniteUnknownElement);
}
child_parser_ = &skip_parser_;
child_parser_ = &unknown_parser_;
}
state_ = State::kGettingAction;
continue;
@@ -217,6 +218,9 @@ class WebmParser::DocumentParser {
// The parser used when skipping elements (if the element's size is known).
SkipParser skip_parser_;
// The parser used for unknown children.
UnknownParser unknown_parser_;
// The callback used when skipping elements.
SkipCallback skip_callback_;