aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/bookmaker/bookmaker.h
diff options
context:
space:
mode:
authorGravatar Cary Clark <caryclark@skia.org>2018-07-18 15:10:08 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-07-18 19:42:52 +0000
commitd789550da4bf666ca11487ddcb5dd6b9b13ec3d7 (patch)
treebf58fd88ff28d0ecb52a4b34d2e1a8739f403f59 /tools/bookmaker/bookmaker.h
parent5ed4df358318161edf7e50b7f04ed972651af913 (diff)
add more fiddle hash checks
Convert some of bookmaker to use real json instead of rolling its own. Also check to see if all hashes are read. TBR=jcgregario@google.com Docs-Preview: https://skia.org/?cl=142166 Bug: skia:8151 Change-Id: Ib35ecd69648faec3522903e0b552d37b04b73f8b Reviewed-on: https://skia-review.googlesource.com/142166 Commit-Queue: Cary Clark <caryclark@skia.org> Auto-Submit: Cary Clark <caryclark@skia.org> Reviewed-by: Cary Clark <caryclark@skia.org>
Diffstat (limited to 'tools/bookmaker/bookmaker.h')
-rw-r--r--tools/bookmaker/bookmaker.h44
1 files changed, 30 insertions, 14 deletions
diff --git a/tools/bookmaker/bookmaker.h b/tools/bookmaker/bookmaker.h
index c695cff0e8..19ea86b68d 100644
--- a/tools/bookmaker/bookmaker.h
+++ b/tools/bookmaker/bookmaker.h
@@ -1328,19 +1328,29 @@ struct JsonStatus {
string fName;
};
-class StatusIter : public ParserCommon {
+class JsonCommon : public ParserCommon {
+public:
+ bool empty() { return fStack.empty(); }
+ bool parseFromFile(const char* path) override;
+
+ void reset() override {
+ fStack.clear();
+ INHERITED::resetCommon();
+ }
+
+ vector<JsonStatus> fStack;
+ Json::Value fRoot;
+private:
+ typedef ParserCommon INHERITED;
+};
+
+class StatusIter : public JsonCommon {
public:
StatusIter(const char* statusFile, const char* suffix, StatusFilter);
~StatusIter() override {}
string baseDir();
- bool empty() { return fStack.empty(); }
bool next(string* file);
-protected:
- bool parseFromFile(const char* path) override;
- void reset() override;
private:
- vector<JsonStatus> fStack;
- Json::Value fRoot;
const char* fSuffix;
StatusFilter fFilter;
};
@@ -1415,6 +1425,7 @@ public:
bool checkParamReturn(const Definition* definition) const;
bool dumpExamples(FILE* fiddleOut, Definition& def, bool* continuation) const;
bool dumpExamples(const char* fiddleJsonFileName) const;
+ bool checkExampleHashes() const;
bool childOf(MarkType markType) const;
string className(MarkType markType);
bool collectExternals();
@@ -1441,6 +1452,7 @@ public:
bool popParentStack(Definition* definition);
void reportDuplicates(const Definition& def, string dup) const;
+ void resetExampleHashes();
void reset() override {
INHERITED::resetCommon();
@@ -2084,10 +2096,10 @@ private:
typedef IncludeParser INHERITED;
};
-class FiddleBase : public ParserCommon {
+class FiddleBase : public JsonCommon {
protected:
- FiddleBase(BmhParser* bmh) : ParserCommon()
- , fBmhParser(bmh)
+ FiddleBase(BmhParser* bmh)
+ : fBmhParser(bmh)
, fContinuation(false)
, fTextOut(false)
, fPngOut(false)
@@ -2096,7 +2108,7 @@ protected:
}
void reset() override {
- INHERITED::resetCommon();
+ INHERITED::reset();
}
Definition* findExample(string name) const { return fBmhParser->findExample(name); }
@@ -2111,7 +2123,7 @@ protected:
bool fTextOut;
bool fPngOut;
private:
- typedef ParserCommon INHERITED;
+ typedef JsonCommon INHERITED;
};
class FiddleParser : public FiddleBase {
@@ -2121,10 +2133,14 @@ public:
}
bool parseFromFile(const char* path) override {
- if (!INHERITED::parseSetup(path)) {
+ if (!INHERITED::parseFromFile(path)) {
+ return false;
+ }
+ fBmhParser->resetExampleHashes();
+ if (!INHERITED::parseFiddles()) {
return false;
}
- return parseFiddles();
+ return fBmhParser->checkExampleHashes();
}
private: