Don't crash if type is not available in Python Doxygen code

Fix crash if "@return" Doxygen tag was used on a node without any return
type (such as a class, for example). Ignoring it might not be the best
thing to do, but it's definitely better than crashing and it's not
really clear what else could be done anyhow.

Closes #1516.
This commit is contained in:
Vadim Zeitlin 2019-04-19 18:48:35 +02:00
commit 01a2cd27e7
3 changed files with 12 additions and 1 deletions

View file

@ -336,8 +336,13 @@ static std::string getPyDocType(Node *n, const_String_or_char_ptr lname = "") {
std::string type;
String *s = Swig_typemap_lookup("doctype", n, lname, 0);
if (!s) {
if (String *t = Getattr(n, "type"))
s = SwigType_str(t, "");
}
if (!s)
s = SwigType_str(Getattr(n, "type"), "");
return type;
if (Language::classLookup(s)) {
// In Python C++ namespaces are flattened, so remove all but last component