From 5ccbce7a917a2a602ad1fa32d8682afe32dd68bc Mon Sep 17 00:00:00 2001 From: Hugo Lima Date: Thu, 29 Oct 2009 20:02:53 -0200 Subject: Fix a crash when the function signature provided by add-function tag does not have parenteses. Reviewed by Marcelo Lira --- typesystem.cpp | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'typesystem.cpp') diff --git a/typesystem.cpp b/typesystem.cpp index 1046aed6d..6d9cbe918 100644 --- a/typesystem.cpp +++ b/typesystem.cpp @@ -2109,18 +2109,23 @@ AddedFunction::AddedFunction(QString signature, QString returnType) : m_access(P m_returnType = parseType(returnType); signature = signature.trimmed(); int endPos = signature.indexOf('('); - m_name = signature.left(endPos).trimmed(); - int signatureLength = signature.length(); - while (endPos < signatureLength) { - TypeInfo arg = parseType(signature, endPos, &endPos); - if (!arg.name.isEmpty()) - m_arguments.append(arg); - // end of parameters... - if (signature[endPos] == ')') - break; + if (endPos < 0) { + m_isConst = false; + m_name = signature; + } else { + m_name = signature.left(endPos).trimmed(); + int signatureLength = signature.length(); + while (endPos < signatureLength) { + TypeInfo arg = parseType(signature, endPos, &endPos); + if (!arg.name.isEmpty()) + m_arguments.append(arg); + // end of parameters... + if (signature[endPos] == ')') + break; + } + // is const? + m_isConst = signature.right(signatureLength - endPos).contains("const"); } - // is const? - m_isConst = signature.right(signatureLength - endPos).contains("const"); } /* -- cgit v1.2.3