summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Chimento <philip.chimento@gmail.com>2016-02-09 22:24:15 -0800
committerrockon999 <rockon999@users.noreply.github.com>2018-08-06 02:53:46 -0500
commitfc39530d66d921331ced5a0b6607e9106c8d1647 (patch)
tree3a352214ebe7ec4f0aa41c42ca04b72e148abe77
parent9d0c3e1551b1f92935efb02a15df4f6e54b537fd (diff)
downloadgobject-introspection-fc39530d66d921331ced5a0b6607e9106c8d1647.tar.gz
docwriter: Handle invalid nodes better
Cogl-2.0.gir has the following entry: <bitfield name="BufferMapHint" version="1.4" stability="Unstable" c:type="CoglBufferMapHint"> <doc xml:whitespace="preserve">...</doc> <member name="" value="1" c:identifier="COGL_BUFFER_MAP_HINT_DISCARD"> <doc xml:whitespace="preserve">...</doc> </member> <member name="_range" value="2" c:identifier="COGL_BUFFER_MAP_HINT_DISCARD_RANGE"> <doc xml:whitespace="preserve">...</doc> </member> </bitfield> The prefix is not picked up correctly and so we get a member without a name, which crashes the docwriter in to_underscore(). Change that function to handle this case by giving it a dummy "anonymous member" name.
-rw-r--r--giscanner/docwriter.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/giscanner/docwriter.py b/giscanner/docwriter.py
index e5a025ba..754787e3 100644
--- a/giscanner/docwriter.py
+++ b/giscanner/docwriter.py
@@ -28,6 +28,7 @@ from __future__ import unicode_literals
import os
import re
+import sys
import tempfile
from xml.sax import saxutils
@@ -1131,6 +1132,15 @@ class DevDocsFormatterGjs(DocFormatterGjs):
link += "#" + anchor
return "[{}]({}){}".format(display_name, link, 's' if pluralize else '')
+ def to_underscores(self, node):
+ try:
+ return super(DevDocsFormatterGjs, self).to_underscores(node)
+ except Exception as e:
+ if e.message == 'invalid node':
+ print('warning: invalid node in', node.parent.name,
+ file=sys.stderr)
+ return node.parent.name + '_invalid_node'
+
def make_anchor(self, node):
style_class = get_node_kind(node)
return "{}-{}".format(style_class, self.to_underscores(node))