update bookmaker

change https://skia-review.googlesource.com/c/skia/+/91380
should have triggered a bookmaker failure but, while
it reported the error it did not return that the check
failed. See
https://chromium-swarm.appspot.com/task?id=3adfe04df6f9ce10&refresh=10

Update bookmaker to detect and return error

also, add some SkImage examples
fixed some linefeeds

TBR=bsalomon@google.com
Docs-Preview: https://skia.org/?cl=90883
Bug: skia:6898
Change-Id: I3530c8d81785b71568f6229c2aad3259dded59d7
Reviewed-on: https://skia-review.googlesource.com/90883
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Cary Clark <caryclark@skia.org>
diff --git a/docs/SkImage_Reference.bmh b/docs/SkImage_Reference.bmh
index 1f61db2..0d9c98b 100644
--- a/docs/SkImage_Reference.bmh
+++ b/docs/SkImage_Reference.bmh
@@ -1320,7 +1320,7 @@
 canvas->drawPaint(paint);
 ##
 
-#SeeAlso incomplete
+#SeeAlso scalePixels
 
 #Method ##
 
@@ -1328,20 +1328,49 @@
 
 #Method bool peekPixels(SkPixmap* pixmap) const
 
-If the image has direct access to its pixels (i.e. they are in local RAM)
-return true, and if not null, return in the pixmap parameter the info about the
-images pixels.
-On failure, return false and ignore the pixmap parameter.
+Copies Image pixel address, row bytes, and Image_Info to pixmap, if address
+is available, and returns true. If pixel address is not available, return
+false and leave pixmap unchanged.
 
-#Param pixmap  incomplete ##
+#Param pixmap  storage for pixel state if pixels are readable; otherwise, ignored ##
 
-#Return incomplete ##
+#Return true if Image has direct access to pixels ##
 
 #Example
-// incomplete
+    SkBitmap bitmap;
+    bitmap.allocPixels(SkImageInfo::MakeN32Premul(12, 11));
+    SkCanvas offscreen(bitmap);
+    offscreen.clear(SK_ColorWHITE);
+    SkPaint paint;
+    offscreen.drawString("%", 1, 10, paint);
+    sk_sp<SkImage> image = SkImage::MakeFromBitmap(bitmap);
+    SkPixmap pixmap;
+    if (image->peekPixels(&pixmap)) {
+        const SkPMColor* pixels = pixmap.addr32();
+        SkPMColor pmWhite = pixels[0];
+        for (int y = 0; y < image->height(); ++y) {
+            for (int x = 0; x < image->width(); ++x) {
+                SkDebugf("%c", *pixels++ == pmWhite ? '-' : 'x');
+            }
+            SkDebugf("\n");
+        }
+    }
+#StdOut
+------------
+--xx----x---
+-x--x--x----
+-x--x--x----
+-x--x-x-----
+--xx-xx-xx--
+-----x-x--x-
+----x--x--x-
+----x--x--x-
+---x----xx--
+------------
+##
 ##
 
-#SeeAlso incomplete
+#SeeAlso readPixels
 
 #Method ##
 
@@ -1355,7 +1384,7 @@
 ##
 
 #Private
-currently used by Canvas2DLayerBridge in Chromium.
+Currently used by Canvas2DLayerBridge in Chromium.
 ##
 
 #Method ##
@@ -1364,15 +1393,37 @@
 
 #Method bool isTextureBacked() const
 
-Returns true if the image is texture backed.
+Returns true the contents of Image was created on or uploaded to GPU memory,
+and is available as a GPU_Texture.
 
-#Return incomplete ##
+#Return true if Image is a GPU_Texture ##
 
 #Example
-// incomplete
+#Image 5
+#Platform gpu
+auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {
+    if (nullptr == image) {
+        return;
+    }
+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setTextAlign(SkPaint::kCenter_Align);
+    canvas->drawImage(image, 0, 0);
+    canvas->drawString(label, image->width() / 2, image->height() / 4, paint);
+    canvas->drawString(image->isTextureBacked() ? "is GPU texture" : "not GPU texture",
+                       image->width() / 2, image->height() * 3 / 4, paint);
+};
+sk_sp<SkImage> bitmapImage(SkImage::MakeFromBitmap(source));
+sk_sp<SkImage> textureImage(SkImage::MakeFromTexture(canvas->getGrContext(), backEndTexture,
+                            kTopLeft_GrSurfaceOrigin, kOpaque_SkAlphaType, nullptr));
+drawImage(image, "image");
+canvas->translate(image->width(), 0);
+drawImage(bitmapImage, "source");
+canvas->translate(-image->width(), image->height());
+drawImage(textureImage, "backEndTexture");
 ##
 
-#SeeAlso incomplete
+#SeeAlso MakeFromTexture isValid
 
 #Method ##
 
@@ -1380,22 +1431,48 @@
 
 #Method bool isValid(GrContext* context) const
 
-Returns true if Image can be drawn. If context
-is nullptr, tests if Image draws on Raster_Surface; Otherwise, tests if Image
-draws on GPU_Surface associated with context.
+Returns true if Image can be drawn on either Raster_Surface or GPU_Surface.
+If context is nullptr, tests if Image draws on Raster_Surface;
+otherwise, tests if Image draws on GPU_Surface associated with context.
 
-Texture-backed images may become invalid if their underlying GrContext is abandoned. Some
-generator-backed images may be invalid for CPU and/or GPU.
+Image backed by GPU_Texture may become invalid if associated GrContext is
+invalid. Lazy_Image may be invalid and may not draw to Raster_Surface or
+GPU_Surface or both.
 
 #Param context  GPU_Context ##
 
-#Return incomplete ##
+#Return true if Image can be drawn  ##
 
 #Example
-// incomplete
+#Image 5
+#Platform gpu
+auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {
+    if (nullptr == image) {
+        return;
+    }
+    SkPaint paint;
+    paint.setAntiAlias(true);
+    paint.setTextAlign(SkPaint::kCenter_Align);
+    canvas->drawImage(image, 0, 0);
+    canvas->drawString(label, image->width() / 2, image->height() / 4, paint);
+    if (canvas->getGrContext()) {
+        canvas->drawString(image->isValid(canvas->getGrContext()) ? "is valid on GPU" :
+                "not valid on GPU", image->width() / 2, image->height() * 5 / 8, paint);
+    }
+    canvas->drawString(image->isValid(nullptr) ? "is valid on CPU" :
+            "not valid on CPU", image->width() / 2, image->height() * 7 / 8, paint);
+};
+sk_sp<SkImage> bitmapImage(SkImage::MakeFromBitmap(source));
+sk_sp<SkImage> textureImage(SkImage::MakeFromTexture(canvas->getGrContext(), backEndTexture,
+                            kTopLeft_GrSurfaceOrigin, kOpaque_SkAlphaType, nullptr));
+drawImage(image, "image");
+canvas->translate(image->width(), 0);
+drawImage(bitmapImage, "source");
+canvas->translate(-image->width(), image->height());
+drawImage(textureImage, "backEndTexture");
 ##
 
-#SeeAlso incomplete
+#SeeAlso isTextureBacked isLazyGenerated
 
 #Method ##
 
@@ -1992,6 +2069,34 @@
 }
 ##
 
+#Example
+#Image 5
+#Platform gpu
+void draw(SkCanvas* canvas) {
+    auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {
+        if (nullptr == image) {
+            return;
+        }
+        SkPaint paint;
+        paint.setAntiAlias(true);
+        paint.setTextAlign(SkPaint::kCenter_Align);
+        canvas->drawImage(image, 0, 0);
+        canvas->drawString(label, image->width() / 2, image->height() / 4, paint);
+        canvas->drawString(
+                image->isLazyGenerated() ? "is lazily generated" : "not lazily generated",
+                image->width() / 2, image->height() * 3 / 4, paint);
+    };
+    sk_sp<SkImage> bitmapImage(SkImage::MakeFromBitmap(source));
+    sk_sp<SkImage> textureImage(SkImage::MakeFromTexture(canvas->getGrContext(), backEndTexture,
+                                kTopLeft_GrSurfaceOrigin, kOpaque_SkAlphaType, nullptr));
+    drawImage(image, "image");
+    canvas->translate(image->width(), 0);
+    drawImage(bitmapImage, "source");
+    canvas->translate(-image->width(), image->height());
+    drawImage(textureImage, "backEndTexture");
+}
+##
+
 #SeeAlso incomplete
 
 #Method ##
diff --git a/docs/usingBookmaker.bmh b/docs/usingBookmaker.bmh
index 470dd3c..170a5a7 100644
--- a/docs/usingBookmaker.bmh
+++ b/docs/usingBookmaker.bmh
@@ -27,18 +27,18 @@
 To regenerate the documentation, follow the Installing and Regenerate steps below.
 
 If the
-#A Housekeeper-Nightly-Bookmaker # https://status.skia.org/repo/skia?filter=search&search_value=Housekeeper-Nightly-Bookmaker ##

- bot is red, one of several things may have gone wrong:

-

-#List

-# A change to include broke documentation examples. ##

-# Something changed the examples that output text. ##

-# Some interface was added, deleted, edited. ##

-# Documentation is malformed. ##

-##

-

-The bot output describes what changed, and includes the file and line

-where the error occurred.

+#A Housekeeper-Nightly-Bookmaker # https://status.skia.org/repo/skia?filter=search&search_value=Housekeeper-Nightly-Bookmaker ##
+ bot is red, one of several things may have gone wrong:
+
+#List
+# A change to include broke documentation examples. ##
+# Something changed the examples that output text. ##
+# Some interface was added, deleted, edited. ##
+# Documentation is malformed. ##
+##
+
+The bot output describes what changed, and includes the file and line
+where the error occurred.
 
 To regenerate the documentation, follow the Installing and Regenerate steps below.
 
diff --git a/site/user/api/SkImage_Reference.md b/site/user/api/SkImage_Reference.md
index 6ae8dd1..820aa57 100644
--- a/site/user/api/SkImage_Reference.md
+++ b/site/user/api/SkImage_Reference.md
@@ -1353,7 +1353,7 @@
 
 ### See Also
 
-incomplete
+<a href="#SkImage_scalePixels">scalePixels</a>
 
 ---
 
@@ -1364,29 +1364,46 @@
 bool peekPixels(SkPixmap* pixmap) const
 </pre>
 
-If the image has direct access to its pixels (i.e. they are in local RAM)
-return true, and if not null, return in the <a href="#SkImage_peekPixels_pixmap">pixmap</a> parameter the info about the
-images pixels.
-On failure, return false and ignore the <a href="#SkImage_peekPixels_pixmap">pixmap</a> parameter.
+Copies <a href="#Image">Image</a> pixel address, row bytes, and <a href="#Info">Image Info</a> to <a href="#SkImage_peekPixels_pixmap">pixmap</a>, if address
+is available, and returns true. If pixel address is not available, return
+false and leave <a href="#SkImage_peekPixels_pixmap">pixmap</a> unchanged.
 
 ### Parameters
 
 <table>  <tr>    <td><a name="SkImage_peekPixels_pixmap"> <code><strong>pixmap </strong></code> </a></td> <td>
-incomplete</td>
+storage for pixel state if pixels are readable; otherwise, ignored</td>
   </tr>
 </table>
 
 ### Return Value
 
-incomplete
+true if <a href="#Image">Image</a> has direct access to pixels
 
 ### Example
 
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="900c0eab8dfdecd8301ed5be95887f8e">
+
+#### Example Output
+
+~~~~
+------------
+--xx----x---
+-x--x--x----
+-x--x--x----
+-x--x-x-----
+--xx-xx-xx--
+-----x-x--x-
+----x--x--x-
+----x--x--x-
+---x----xx--
+------------
+~~~~
+
+</fiddle-embed></div>
 
 ### See Also
 
-incomplete
+<a href="#SkImage_readPixels">readPixels</a>
 
 ---
 
@@ -1408,19 +1425,20 @@
 bool isTextureBacked() const
 </pre>
 
-Returns true if the image is texture backed.
+Returns true the contents of <a href="#Image">Image</a> was created on or uploaded to GPU memory,
+and is available as a <a href="undocumented#GPU_Texture">GPU Texture</a>.
 
 ### Return Value
 
-incomplete
+true if <a href="#Image">Image</a> is a <a href="undocumented#GPU_Texture">GPU Texture</a>
 
 ### Example
 
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="96fd92d399778486a51c5d828ef99322" gpu="true"></fiddle-embed></div>
 
 ### See Also
 
-incomplete
+<a href="#SkImage_MakeFromTexture">MakeFromTexture</a> <a href="#SkImage_isValid">isValid</a>
 
 ---
 
@@ -1431,12 +1449,13 @@
 bool isValid(GrContext* context) const
 </pre>
 
-Returns true if <a href="#Image">Image</a> can be drawn. If <a href="#SkImage_isValid_context">context</a>
-is nullptr, tests if <a href="#Image">Image</a> draws on <a href="undocumented#Raster_Surface">Raster Surface</a>; Otherwise, tests if <a href="#Image">Image</a>
-draws on <a href="undocumented#GPU_Surface">GPU Surface</a> associated with <a href="#SkImage_isValid_context">context</a>.
+Returns true if <a href="#Image">Image</a> can be drawn on either <a href="undocumented#Raster_Surface">Raster Surface</a> or <a href="undocumented#GPU_Surface">GPU Surface</a>.
+If <a href="#SkImage_isValid_context">context</a> is nullptr, tests if <a href="#Image">Image</a> draws on <a href="undocumented#Raster_Surface">Raster Surface</a>;
+otherwise, tests if <a href="#Image">Image</a> draws on <a href="undocumented#GPU_Surface">GPU Surface</a> associated with <a href="#SkImage_isValid_context">context</a>.
 
-<a href="undocumented#Texture">Texture</a>-backed images may become invalid if their underlying <a href="undocumented#GrContext">GrContext</a> is abandoned. Some
-generator-backed images may be invalid for CPU and/or GPU.
+<a href="#Image">Image</a> backed by <a href="undocumented#GPU_Texture">GPU Texture</a> may become invalid if associated <a href="undocumented#GrContext">GrContext</a> is
+invalid. <a href="#Lazy_Image">Lazy Image</a> may be invalid and may not draw to <a href="undocumented#Raster_Surface">Raster Surface</a> or
+<a href="undocumented#GPU_Surface">GPU Surface</a> or both.
 
 ### Parameters
 
@@ -1447,15 +1466,15 @@
 
 ### Return Value
 
-incomplete
+true if <a href="#Image">Image</a> can be drawn
 
 ### Example
 
-<div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
+<div><fiddle-embed name="daf1507ab3a5f7cb0f90058cbc028402" gpu="true"></fiddle-embed></div>
 
 ### See Also
 
-incomplete
+<a href="#SkImage_isTextureBacked">isTextureBacked</a> <a href="#SkImage_isLazyGenerated">isLazyGenerated</a>
 
 ---
 
@@ -2229,6 +2248,10 @@
 
 <div><fiddle-embed name="a8b8bd4bfe968e2c63085f867665227f"></fiddle-embed></div>
 
+### Example
+
+<div><fiddle-embed name="070dd0405890b84c07827d93fa01c331" gpu="true"></fiddle-embed></div>
+
 ### See Also
 
 incomplete
diff --git a/site/user/api/catalog.htm b/site/user/api/catalog.htm
index 4265f09..cb1bec3 100644
--- a/site/user/api/catalog.htm
+++ b/site/user/api/catalog.htm
@@ -1064,6 +1064,13 @@
     "name": "SkImage::isOpaque",
         "stdout": "isOpaque = false\\nisOpaque = true\\n"
     },
+        "SkImage_peekPixels": {
+    "code": "void draw(SkCanvas* canvas) {\n    SkBitmap bitmap;\n    bitmap.allocPixels(SkImageInfo::MakeN32Premul(12, 11));\n    SkCanvas offscreen(bitmap);\n    offscreen.clear(SK_ColorWHITE);\n    SkPaint paint;\n    offscreen.drawString(\"%\", 1, 10, paint);\n    sk_sp<SkImage> image = SkImage::MakeFromBitmap(bitmap);\n    SkPixmap pixmap;\n    if (image->peekPixels(&pixmap)) {\n        const SkPMColor* pixels = pixmap.addr32();\n        SkPMColor pmWhite = pixels[0];\n        for (int y = 0; y < image->height(); ++y) {\n            for (int x = 0; x < image->width(); ++x) {\n                SkDebugf(\"%c\", *pixels++ == pmWhite ? '-' : 'x');\n            }\n            SkDebugf(\"\\n\");\n        }\n    }\n}",
+    "hash": "900c0eab8dfdecd8301ed5be95887f8e",
+    "file": "SkImage_Reference",
+    "name": "SkImage::peekPixels",
+        "stdout": "------------\\n--xx----x---\\n-x--x--x----\\n-x--x--x----\\n-x--x-x-----\\n--xx-xx-xx--\\n-----x-x--x-\\n----x--x--x-\\n----x--x--x-\\n---x----xx--\\n------------\\n"
+    },
         "SkMatrix_I": {
     "code": "void draw(SkCanvas* canvas) {\n    SkMatrix m1, m2, m3;\n    m1.reset();\n    m2.setIdentity();\n    m3 = SkMatrix::I();\n    SkDebugf(\"m1 %c= m2\\n\", m1 == m2 ? '=' : '!');\n    SkDebugf(\"m2 %c= m3\\n\", m1 == m2 ? '=' : '!');\n}",
     "hash": "d961d91020f19037204a8c3fd8cb1060",
@@ -4937,19 +4944,27 @@
     "file": "SkImage_Reference",
     "name": "SkImage::isLazyGenerated"
 },
-    "SkImage_isTextureBacked": {
-    "code": "void draw(SkCanvas* canvas) {\n    // incomplete\n}",
+    "SkImage_isLazyGenerated_a": {
+    "code": "void draw(SkCanvas* canvas) {\n    auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {\n        if (nullptr == image) {\n            return;\n        }\n        SkPaint paint;\n        paint.setAntiAlias(true);\n        paint.setTextAlign(SkPaint::kCenter_Align);\n        canvas->drawImage(image, 0, 0);\n        canvas->drawString(label, image->width() / 2, image->height() / 4, paint);\n        canvas->drawString(\n                image->isLazyGenerated() ? \"is lazily generated\" : \"not lazily generated\",\n                image->width() / 2, image->height() * 3 / 4, paint);\n    };\n    sk_sp<SkImage> bitmapImage(SkImage::MakeFromBitmap(source));\n    sk_sp<SkImage> textureImage(SkImage::MakeFromTexture(canvas->getGrContext(), backEndTexture,\n                                kTopLeft_GrSurfaceOrigin, kOpaque_SkAlphaType, nullptr));\n    drawImage(image, \"image\");\n    canvas->translate(image->width(), 0);\n    drawImage(bitmapImage, \"source\");\n    canvas->translate(-image->width(), image->height());\n    drawImage(textureImage, \"backEndTexture\");\n}\n",
     "width": 256,
     "height": 256,
-    "hash": "882e8e0103048009a25cfc20400492f7",
+    "hash": "070dd0405890b84c07827d93fa01c331",
+    "file": "SkImage_Reference",
+    "name": "SkImage::isLazyGenerated_2"
+},
+    "SkImage_isTextureBacked": {
+    "code": "void draw(SkCanvas* canvas) {\n    auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {\n        if (nullptr == image) {\n            return;\n        }\n        SkPaint paint;\n        paint.setAntiAlias(true);\n        paint.setTextAlign(SkPaint::kCenter_Align);\n        canvas->drawImage(image, 0, 0);\n        canvas->drawString(label, image->width() / 2, image->height() / 4, paint);\n        canvas->drawString(image->isTextureBacked() ? \"is GPU texture\" : \"not GPU texture\",\n                           image->width() / 2, image->height() * 3 / 4, paint);\n    };\n    sk_sp<SkImage> bitmapImage(SkImage::MakeFromBitmap(source));\n    sk_sp<SkImage> textureImage(SkImage::MakeFromTexture(canvas->getGrContext(), backEndTexture,\n                                kTopLeft_GrSurfaceOrigin, kOpaque_SkAlphaType, nullptr));\n    drawImage(image, \"image\");\n    canvas->translate(image->width(), 0);\n    drawImage(bitmapImage, \"source\");\n    canvas->translate(-image->width(), image->height());\n    drawImage(textureImage, \"backEndTexture\");\n}",
+    "width": 256,
+    "height": 256,
+    "hash": "96fd92d399778486a51c5d828ef99322",
     "file": "SkImage_Reference",
     "name": "SkImage::isTextureBacked"
 },
     "SkImage_isValid": {
-    "code": "void draw(SkCanvas* canvas) {\n    // incomplete\n}",
+    "code": "void draw(SkCanvas* canvas) {\n    auto drawImage = [=](sk_sp<SkImage> image, const char* label) -> void {\n        if (nullptr == image) {\n            return;\n        }\n        SkPaint paint;\n        paint.setAntiAlias(true);\n        paint.setTextAlign(SkPaint::kCenter_Align);\n        canvas->drawImage(image, 0, 0);\n        canvas->drawString(label, image->width() / 2, image->height() / 4, paint);\n        if (canvas->getGrContext()) {\n            canvas->drawString(image->isValid(canvas->getGrContext()) ? \"is valid on GPU\" :\n                    \"not valid on GPU\", image->width() / 2, image->height() * 5 / 8, paint);\n        }\n        canvas->drawString(image->isValid(nullptr) ? \"is valid on CPU\" :\n                \"not valid on CPU\", image->width() / 2, image->height() * 7 / 8, paint);\n    };\n    sk_sp<SkImage> bitmapImage(SkImage::MakeFromBitmap(source));\n    sk_sp<SkImage> textureImage(SkImage::MakeFromTexture(canvas->getGrContext(), backEndTexture,\n                                kTopLeft_GrSurfaceOrigin, kOpaque_SkAlphaType, nullptr));\n    drawImage(image, \"image\");\n    canvas->translate(image->width(), 0);\n    drawImage(bitmapImage, \"source\");\n    canvas->translate(-image->width(), image->height());\n    drawImage(textureImage, \"backEndTexture\");\n}",
     "width": 256,
     "height": 256,
-    "hash": "882e8e0103048009a25cfc20400492f7",
+    "hash": "daf1507ab3a5f7cb0f90058cbc028402",
     "file": "SkImage_Reference",
     "name": "SkImage::isValid"
 },
@@ -5017,14 +5032,6 @@
     "file": "SkImage_Reference",
     "name": "SkImage::makeWithFilter"
 },
-    "SkImage_peekPixels": {
-    "code": "void draw(SkCanvas* canvas) {\n    // incomplete\n}",
-    "width": 256,
-    "height": 256,
-    "hash": "882e8e0103048009a25cfc20400492f7",
-    "file": "SkImage_Reference",
-    "name": "SkImage::peekPixels"
-},
     "SkImage_readPixels": {
     "code": "void draw(SkCanvas* canvas) {\n    // incomplete\n}",
     "width": 256,
diff --git a/tools/bookmaker/bookmaker.h b/tools/bookmaker/bookmaker.h
index 792f7d9..c839278 100644
--- a/tools/bookmaker/bookmaker.h
+++ b/tools/bookmaker/bookmaker.h
@@ -935,7 +935,7 @@
     RootDefinition* asRoot() override { return this; }
     const RootDefinition* asRoot() const override { return this; }
     void clearVisited();
-    bool dumpUnVisited(bool skip);
+    bool dumpUnVisited();
     const Definition* find(const string& ref, AllowParens ) const;
     bool isRoot() const override { return true; }
     RootDefinition* rootParent() override { return fRootParent; }
diff --git a/tools/bookmaker/definition.cpp b/tools/bookmaker/definition.cpp
index 77f4446..82b0a33 100644
--- a/tools/bookmaker/definition.cpp
+++ b/tools/bookmaker/definition.cpp
@@ -1215,18 +1215,10 @@
     }
 }
 
-bool RootDefinition::dumpUnVisited(bool skip) {
-    bool allStructElementsFound = true;
+bool RootDefinition::dumpUnVisited() {
+    bool success = true;
     for (auto& leaf : fLeaves) {
         if (!leaf.second.fVisited) {
-            // TODO: parse embedded struct in includeParser phase, then remove this condition
-            if (skip) {
-                const Definition& def = leaf.second;
-                if (def.fChildren.size() > 0 &&
-                        MarkType::kDeprecated == def.fChildren[0]->fMarkType) {
-                    continue;
-                }
-            }
             // FIXME: bugs requiring long tail fixes, suppressed here:
             // SkBitmap::validate() is wrapped in SkDEBUGCODE in .h and not parsed
             if ("SkBitmap::validate()" == leaf.first) {
@@ -1238,12 +1230,13 @@
             }
             // FIXME: end of long tail bugs
             SkDebugf("defined in bmh but missing in include: %s\n", leaf.first.c_str());
+            success = false;
         }
     }
     for (auto& branch : fBranches) {
-        allStructElementsFound &= branch.second->dumpUnVisited(skip);
+        success &= branch.second->dumpUnVisited();
     }
-    return allStructElementsFound;
+    return success;
 }
 
 const Definition* RootDefinition::find(const string& ref, AllowParens allowParens) const {
diff --git a/tools/bookmaker/includeParser.cpp b/tools/bookmaker/includeParser.cpp
index fa5ad32..26281b6 100644
--- a/tools/bookmaker/includeParser.cpp
+++ b/tools/bookmaker/includeParser.cpp
@@ -458,8 +458,7 @@
             continue;
         }
         RootDefinition* root = &finder->second;
-        if (!root->dumpUnVisited(bmhParser.fSkip)) {
-            SkDebugf("some struct elements not found; struct finding in includeParser is missing\n");
+        if (!root->dumpUnVisited()) {
             fFailed = true;
         }
         if (crossChecks) {