From efc33490c36cb7c21955901ce0abccc343c0c7b3 Mon Sep 17 00:00:00 2001 From: albert-github Date: Mon, 5 Nov 2018 12:07:47 +0100 Subject: issue_6597 SIGSEGV presumably caused by C++ "using" declaration Crash appears in in the autogen / permod and sqlite3 code generation. In the xml code generation the problem does not appear due to the protection against the NULL pointer. Added protection on the other places as well --- src/defgen.cpp | 2 +- src/perlmodgen.cpp | 2 +- src/sqlite3gen.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/defgen.cpp b/src/defgen.cpp index cd69ab2..3ab311c 100644 --- a/src/defgen.cpp +++ b/src/defgen.cpp @@ -146,7 +146,7 @@ void generateDEFForMember(MemberDef *md, stringToArgumentList(md->argsString(),declAl); QCString fcnPrefix = " " + memPrefix + "param-"; - if (declAl->count()>0) + if (defAl && declAl->count()>0) { ArgumentListIterator declAli(*declAl); ArgumentListIterator defAli(*defAl); diff --git a/src/perlmodgen.cpp b/src/perlmodgen.cpp index 5b4b6ea..ab55bfa 100644 --- a/src/perlmodgen.cpp +++ b/src/perlmodgen.cpp @@ -1609,7 +1609,7 @@ void PerlModGenerator::generatePerlModForMember(MemberDef *md,Definition *) m_output.openList("parameters"); ArgumentList *declAl = md->declArgumentList(); ArgumentList *defAl = md->argumentList(); - if (declAl && declAl->count()>0) + if (declAl && defAl && declAl->count()>0) { ArgumentListIterator declAli(*declAl); ArgumentListIterator defAli(*defAl); diff --git a/src/sqlite3gen.cpp b/src/sqlite3gen.cpp index a7d7f21..a7b8dbb 100644 --- a/src/sqlite3gen.cpp +++ b/src/sqlite3gen.cpp @@ -1017,7 +1017,7 @@ static void insertMemberFunctionParams(int memberdef_id, const MemberDef *md, co { ArgumentList *declAl = md->declArgumentList(); ArgumentList *defAl = md->argumentList(); - if (declAl!=0 && declAl->count()>0) + if (declAl!=0 && defAl!=0 && declAl->count()>0) { ArgumentListIterator declAli(*declAl); ArgumentListIterator defAli(*defAl); -- cgit v0.12 From ee97be448f7adc1285b38bae5adb7e7d48d4c29e Mon Sep 17 00:00:00 2001 From: albert-github Date: Fri, 9 Nov 2018 19:20:15 +0100 Subject: Invalid warnings regarding todos when source file name contains a '-' Handling also filenames in scope environment --- src/doctokenizer.l | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/doctokenizer.l b/src/doctokenizer.l index 6a703df..5bc6d89 100644 --- a/src/doctokenizer.l +++ b/src/doctokenizer.l @@ -1058,7 +1058,7 @@ REFWORD_NOCV {FILEMASK}|{LABELID}|{REFWORD2_NOCV}|{REFWORD3}|{REFWORD4_NOCV} {BLANK}+"\"" { BEGIN(St_Ref2); } -({SCOPEMASK}|{ANONNS}){BLANK} { +({SCOPEMASK}|{ANONNS}){BLANK}|{FILEMASK} { g_token->name = yytext; g_token->name = g_token->name.stripWhiteSpace(); return TK_WORD; -- cgit v0.12