fix bookmaker
add error handling if bmh has #Populate
but include has been marked deprecated
TBR=reed@google.com
Bug: skia:
Change-Id: I1a577bbf95ebe4f5fe46ea2c6a1e1f10f6b8e684
Reviewed-on: https://skia-review.googlesource.com/c/177062
Reviewed-by: Cary Clark <caryclark@skia.org>
Commit-Queue: Cary Clark <caryclark@skia.org>
Auto-Submit: Cary Clark <caryclark@skia.org>
diff --git a/tools/bookmaker/includeParser.cpp b/tools/bookmaker/includeParser.cpp
index 7fb5938..82bbce5 100644
--- a/tools/bookmaker/includeParser.cpp
+++ b/tools/bookmaker/includeParser.cpp
@@ -1828,7 +1828,9 @@
className = className.substr(subClassPos + 2);
}
// match may be constructor; compare strings to see if this is so
- SkASSERT(string::npos != methodName.find('('));
+ if (string::npos == methodName.find('(')) {
+ return nullptr;
+ }
auto stripper = [](string s) -> string {
bool last = false;
string result;
diff --git a/tools/bookmaker/mdOut.cpp b/tools/bookmaker/mdOut.cpp
index c78790d..3e16b06 100644
--- a/tools/bookmaker/mdOut.cpp
+++ b/tools/bookmaker/mdOut.cpp
@@ -1668,7 +1668,10 @@
SkASSERT(MarkType::kMethod == parent->fMarkType);
// retrieve parameters, return, description from include
Definition* iMethod = fIncludeParser.findMethod(*parent);
- SkASSERT(iMethod); // deprecated or 'in progress' functions should not include populate
+ if (!iMethod) { // deprecated or 'in progress' functions should not include populate
+ SkDebugf("#Populate found in deprecated or missing method %s\n", def->fName.c_str());
+ def->fParent->reportError<void>("Remove #Method");
+ }
bool wroteParam = false;
SkASSERT(fMethod == iMethod);
for (auto& entry : iMethod->fTokens) {