reland fix picture subclass destructor doc

Failure to fully parse subclass destructor
caused bookmaker to drop everything that
followed. Fix it, and look for subclass
constructors more thoroughly.

Fixed ints that should have been size_t
that broke the build the first time. Its
weird that the trybot CL didn't catch this.

TBR=caryclark@google.com

Docs-Preview: https://skia.org/?cl=152666
Bug: skia:6898
Change-Id: Id2ec0e96e71c371c97f344f9e116be211fd220bc
Reviewed-on: https://skia-review.googlesource.com/152666
Commit-Queue: Cary Clark <caryclark@google.com>
Auto-Submit: Cary Clark <caryclark@google.com>
Reviewed-by: Cary Clark <caryclark@google.com>
This commit is contained in:
Cary Clark 2018-09-07 14:17:08 -04:00 committed by Skia Commit-Bot
parent eb50f434f0
commit a8cdc176c6
6 changed files with 40 additions and 24 deletions

View File

@ -315,7 +315,7 @@ Returns Region if set; otherwise, returns nullptr.
#Code
class SK_API Cliperator {
public:
Cliperator(const SkRegion&, const SkIRect& clip);
Cliperator(const SkRegion& region, const SkIRect& clip);
bool done();
void next();
const SkIRect& rect() const;

View File

@ -129,7 +129,7 @@ SkPicture::AbortCallback can be constructed or initialized by these functions, i
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>defines default constructor</td>
</tr>
<tr>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a href='#SkPicture_AbortCallback_destructor'>~AbortCallback()</a></td>
<td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>defines default destructor</td>
</tr>
</table>
@ -155,7 +155,9 @@ SkPicture::AbortCallback member functions read and modify the structure properti
class <a href='#SkPicture_AbortCallback_AbortCallback'>AbortCallback</a> {
public:
<a href='#SkPicture_AbortCallback_AbortCallback'>AbortCallback()</a> {}
virtual
virtual <a href='#SkPicture_AbortCallback_destructor'>~AbortCallback()</a> {}
virtual bool <a href='#SkPicture_AbortCallback_abort'>abort</a> = 0;
};
</pre>
<a href='#SkPicture_AbortCallback_AbortCallback'>AbortCallback</a> is an abstract class. An implementation of <a href='#SkPicture_AbortCallback_AbortCallback'>AbortCallback</a> may
@ -187,7 +189,7 @@ abstract class cannot be instantiated
## ~AbortCallback
<pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
virtual
virtual <a href='#SkPicture_AbortCallback_destructor'>~AbortCallback</a>()
</pre>
Has no effect.

View File

@ -663,7 +663,7 @@ SkRegion::Cliperator member functions read and modify the structure properties.
<pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
class SK_API <a href='#SkRegion_Cliperator'>Cliperator</a> {
public:
<a href='#SkRegion_Cliperator'>Cliperator(const SkRegion&, const SkIRect& clip)</a>;
<a href='#SkRegion_Cliperator_const_SkRegion_const_SkIRect'>Cliperator(const SkRegion& region, const SkIRect& clip)</a>;
bool <a href='#SkRegion_Cliperator_done'>done</a>;
void <a href='#SkRegion_Cliperator_next'>next</a>;
const <a href='SkIRect_Reference#SkIRect'>SkIRect</a>& <a href='#SkRegion_Cliperator_rect'>rect</a> const;

View File

@ -62,21 +62,12 @@ there is special case code to skip phrase def when looking for additional substi
phrase def. Could put it in the token list instead I guess, or make a definition subclass used
by phrase def with an additional slot...
#Deprecated soon
##
should emit the text "To be deprecated soon." (right now you get just "soon")
SkCanvas_ColorBehavior_kLegacy missing </table> in md out
rearrange const out for md so that const / value / short description comes first in a table,
followed by more elaborate descriptions, examples, seealso. In md.cpp, look to see if #Subtopic
has #Const children. If so, generate a summary table first.
Or, only allow #Line and moderate text description in #Const. Put more verbose text, example,
seealso, in subsequent #SubTopic. Alpha_Type does this and it looks good.
picture reference subclass AbortCallback has empty subtopics, and fails to show the full
prototype for ~AbortCallback in the md out generation.
see head of selfCheck.cpp for additional todos
see head of spellCheck.cpp for additional todos
*/

View File

@ -2365,7 +2365,13 @@ public:
MethodParser(string className, string fileName,
const char* start, const char* end, int lineCount)
: TextParser(fileName, start, end, lineCount)
, fClassName(className) {
, fClassName(className)
, fLocalName(className) {
size_t doubleColons = className.find_last_of("::");
if (string::npos != doubleColons) {
fLocalName = className.substr(doubleColons + 1);
SkASSERT(fLocalName.length() > 0);
}
}
~MethodParser() override {}
@ -2384,18 +2390,18 @@ public:
if (this->eof()) {
return;
}
if (fClassName.length()) {
if (fLocalName.length()) {
if ('~' == this->peek()) {
this->next();
if (!this->startsWith(fClassName.c_str())) {
if (!this->startsWith(fLocalName.c_str())) {
--fChar;
return;
}
}
if (BmhParser::Resolvable::kSimple != resolvable
&& (this->startsWith(fClassName.c_str()) || this->startsWith("operator"))) {
&& (this->startsWith(fLocalName.c_str()) || this->startsWith("operator"))) {
const char* ptr = this->anyOf("\n (");
if (ptr && '(' == *ptr) {
if (ptr && '(' == *ptr && strncmp(ptr, "(...", 4)) {
this->skipToEndBracket(')');
SkAssertResult(')' == this->next());
this->skipExact("_const");
@ -2432,6 +2438,7 @@ public:
private:
string fClassName;
string fLocalName;
typedef TextParser INHERITED;
};

View File

@ -1216,13 +1216,29 @@ Definition* RootDefinition::find(string ref, AllowParens allowParens) {
if (leafIter != fLeaves.end()) {
return &leafIter->second;
}
if (AllowParens::kYes == allowParens && string::npos == ref.find("()")) {
if (AllowParens::kYes == allowParens) {
size_t leftParen = ref.find('(');
if (string::npos == leftParen
|| (leftParen + 1 < ref.length() && ')' != ref[leftParen + 1])) {
string withParens = ref + "()";
const auto parensIter = fLeaves.find(withParens);
if (parensIter != fLeaves.end()) {
return &parensIter->second;
}
}
if (string::npos != leftParen) {
string name = ref.substr(0, leftParen);
size_t posInDefName = fName.find(name);
if (string::npos != posInDefName && posInDefName > 2
&& "::" == fName.substr(posInDefName - 2, 2)) {
string fullRef = fName + "::" + ref;
const auto fullIter = fLeaves.find(fullRef);
if (fullIter != fLeaves.end()) {
return &fullIter->second;
}
}
}
}
const auto branchIter = fBranches.find(ref);
if (branchIter != fBranches.end()) {
RootDefinition* rootDef = branchIter->second;