Commit 9b7e4ffb authored by Dimitri van Heesch's avatar Dimitri van Heesch

Fixed several Coverity warnings

parent e986e003
......@@ -550,6 +550,7 @@ int QFile::writeBlock( const char *p, uint len )
return -1;
}
#endif
if (p==0) return 0;
int nwritten; // number of bytes written
if ( isRaw() ) // raw file
nwritten = (int)WRITE( fd, p, len );
......
......@@ -28,24 +28,25 @@ class CondParser
{
// public functions
public:
CondParser() : m_e(0), m_tokenType(NOTHING) {}
bool parse(const char *fileName,int lineNr,const char *expr);
// enumerations
private:
enum TOKENTYPE
enum TOKENTYPE
{
NOTHING = -1,
DELIMITER,
VARIABLE,
NOTHING = -1,
DELIMITER,
VARIABLE,
UNKNOWN
};
enum OPERATOR_ID
enum OPERATOR_ID
{
UNKNOWN_OP = -1,
AND = 1,
OR,
UNKNOWN_OP = -1,
AND = 1,
OR,
NOT
};
};
// data
private:
......
......@@ -5760,7 +5760,8 @@ class ClassTreeContext::Private : public PropertyMapper
SharedPtr<NestingContext> m_classTree;
struct Cachable
{
Cachable() : maxDepthComputed(FALSE), preferredDepthComputed(FALSE) {}
Cachable() : maxDepth(0), maxDepthComputed(FALSE),
preferredDepth(0), preferredDepthComputed(FALSE) {}
int maxDepth;
bool maxDepthComputed;
int preferredDepth;
......@@ -6168,7 +6169,8 @@ class FileTreeContext::Private : public PropertyMapper
SharedPtr<NestingContext> m_dirFileTree;
struct Cachable
{
Cachable() : maxDepthComputed(FALSE), preferredDepthComputed(FALSE) {}
Cachable() : maxDepth(0), maxDepthComputed(FALSE),
preferredDepth(0), preferredDepthComputed(FALSE) {}
int maxDepth;
bool maxDepthComputed;
int preferredDepth;
......
......@@ -58,10 +58,10 @@ class DefinitionImpl
SectionDict *sectionDict; // dictionary of all sections, not accessible
MemberSDict *sourceRefByDict;
MemberSDict *sourceRefsDict;
QList<ListItemInfo> *xrefListItems;
GroupList *partOfGroups;
MemberSDict *sourceRefByDict;
MemberSDict *sourceRefsDict;
QList<ListItemInfo> *xrefListItems;
GroupList *partOfGroups;
DocInfo *details; // not exported
DocInfo *inbodyDocs; // not exported
......@@ -89,11 +89,11 @@ class DefinitionImpl
QCString id; // clang unique id
};
DefinitionImpl::DefinitionImpl()
: sectionDict(0), sourceRefByDict(0), sourceRefsDict(0),
DefinitionImpl::DefinitionImpl()
: sectionDict(0), sourceRefByDict(0), sourceRefsDict(0),
xrefListItems(0), partOfGroups(0),
details(0), inbodyDocs(0), brief(0), body(0),
outerScope(0)
details(0), inbodyDocs(0), brief(0), body(0), hidden(FALSE), isArtificial(FALSE),
outerScope(0), lang(SrcLangExt_Unknown)
{
}
......
......@@ -18,7 +18,7 @@
static int g_dirCount=0;
DirDef::DirDef(const char *path) : Definition(path,1,1,path)
DirDef::DirDef(const char *path) : Definition(path,1,1,path), visited(FALSE)
{
bool fullPathNames = Config_getBool("FULL_PATH_NAMES");
// get display name (stipping the paths mentioned in STRIP_FROM_PATH)
......
......@@ -178,14 +178,14 @@ class TextGeneratorDocbookImpl : public TextGeneratorIntf
class DocbookCodeGenerator : public CodeOutputInterface
{
public:
DocbookCodeGenerator(FTextStream &t) : m_t(t), m_lineNumber(-1),
DocbookCodeGenerator(FTextStream &t) : m_t(t), m_lineNumber(-1), m_col(0),
m_insideCodeLine(FALSE), m_insideSpecialHL(FALSE) {}
virtual ~DocbookCodeGenerator() {}
void codify(const char *text)
{
Docbook_DB(("(codify \"%s\")\n",text));
writeDocbookCodeString(m_t,text,col);
writeDocbookCodeString(m_t,text,m_col);
}
void writeCodeLink(const char *ref,const char *file,
const char *anchor,const char *name,
......@@ -193,7 +193,7 @@ class DocbookCodeGenerator : public CodeOutputInterface
{
Docbook_DB(("(writeCodeLink)\n"));
writeDocbookLink(m_t,ref,file,anchor,name,tooltip);
col+=strlen(name);
m_col+=strlen(name);
}
void writeTooltip(const char *, const DocLinkInfo &, const char *,
const char *, const SourceLinkInfo &, const SourceLinkInfo &
......@@ -217,7 +217,7 @@ class DocbookCodeGenerator : public CodeOutputInterface
}
}
m_insideCodeLine=TRUE;
col=0;
m_col=0;
}
void endCodeLine()
{
......@@ -255,7 +255,6 @@ class DocbookCodeGenerator : public CodeOutputInterface
{
m_refId=compId;
if (anchorId) m_refId+=(QCString)"_1"+anchorId;
m_isMemberRef = anchorId!=0;
if (extRef) m_external=extRef;
}
}
......@@ -275,8 +274,7 @@ class DocbookCodeGenerator : public CodeOutputInterface
QCString m_refId;
QCString m_external;
int m_lineNumber;
bool m_isMemberRef;
int col;
int m_col;
bool m_insideCodeLine;
bool m_insideSpecialHL;
};
......
......@@ -2089,6 +2089,11 @@ DocFormula::DocFormula(DocNode *parent,int id) :
m_name.sprintf("form_%d",m_id);
m_text = formula->getFormulaText();
}
else // wrong \form#<n> command
{
warn_doc_error(g_fileName,doctokenizerYYlineno,"Wrong formula id %d",id);
m_id = -1;
}
}
//---------------------------------------------------------------------------
......@@ -2366,7 +2371,7 @@ DocRef::DocRef(DocNode *parent,const QCString &target,const QCString &context) :
// compound->definitionType());
return;
}
else if (compound->definitionType()==Definition::TypeFile &&
else if (compound && compound->definitionType()==Definition::TypeFile &&
((FileDef*)compound)->generateSourceFile()
) // undocumented file that has source code we can link to
{
......@@ -2485,9 +2490,8 @@ DocCite::DocCite(DocNode *parent,const QCString &target,const QCString &) //cont
DocLink::DocLink(DocNode *parent,const QCString &target)
{
m_parent = parent;
Definition *compound;
//PageInfo *page;
m_parent = parent;
Definition *compound = 0;
QCString anchor;
m_refText = target;
m_relPath = g_relPath;
......@@ -2504,7 +2508,7 @@ DocLink::DocLink(DocNode *parent,const QCString &target)
m_file = compound->getOutputFileBase();
m_ref = compound->getReference();
}
else if (compound->definitionType()==Definition::TypeFile &&
else if (compound && compound->definitionType()==Definition::TypeFile &&
((FileDef*)compound)->generateSourceFile()
) // undocumented file that has source code we can link to
{
......@@ -3308,7 +3312,6 @@ int DocIndexEntry::parse()
break;
}
}
if (tok!=0) retval=tok;
doctokenizerYYsetStatePara();
m_entry = m_entry.stripWhiteSpace();
endindexentry:
......@@ -6786,17 +6789,13 @@ int DocSection::parse()
}
else if ((m_level<=1+Doxygen::subpageNestingLevel && retval==RetVal_Subsubsection) ||
(m_level<=2+Doxygen::subpageNestingLevel && retval==RetVal_Paragraph)
)
)
{
int level;
if (retval==RetVal_Subsection) level=2;
else if (retval==RetVal_Subsubsection) level=3;
else level=4;
int level = (retval==RetVal_Subsubsection) ? 3 : 4;
warn_doc_error(g_fileName,doctokenizerYYlineno,"Unexpected %s "
"command found inside %s!",
sectionLevelToName[level],sectionLevelToName[m_level]);
retval=0; // stop parsing
}
else
{
......
......@@ -45,9 +45,12 @@ void FileName::generateDiskNames()
{
// skip references
for (it.toFirst();(fd=it.current()) && fd->isReference();++it) { }
// name if unique, so diskname is simply the name
//printf("!!!!!!!! Unique disk name=%s for fd=%s\n",name.data(),fd->diskname.data());
fd->m_diskName=name;
if (fd)
{
// name if unique, so diskname is simply the name
//printf("!!!!!!!! Unique disk name=%s for fd=%s\n",name.data(),fd->diskname.data());
fd->m_diskName=name;
}
}
else if (count>1) // multiple occurrences of the same file name
{
......@@ -57,28 +60,31 @@ void FileName::generateDiskNames()
while (!found) // search for the common prefix of all paths
{
for (it.toFirst();(fd=it.current()) && fd->isReference();++it) { }
char c=fd->m_path.at(i);
if (c=='/') j=i; // remember last position of dirname
++it;
while ((fd=it.current()) && !found)
if (fd)
{
if (!fd->isReference())
char c=fd->m_path.at(i);
if (c=='/') j=i; // remember last position of dirname
++it;
while ((fd=it.current()) && !found)
{
//printf("i=%d j=%d fd->path=`%s' fd->name=`%s'\n",i,j,fd->path.left(i).data(),fd->name().data());
if (i==(int)fd->m_path.length())
if (!fd->isReference())
{
//warning("Input file %s found multiple times!\n"
// " The generated documentation for this file may not be correct!\n",fd->absFilePath().data());
found=TRUE;
}
else if (fd->m_path[i]!=c)
{
found=TRUE;
//printf("i=%d j=%d fd->path=`%s' fd->name=`%s'\n",i,j,fd->path.left(i).data(),fd->name().data());
if (i==(int)fd->m_path.length())
{
//warning("Input file %s found multiple times!\n"
// " The generated documentation for this file may not be correct!\n",fd->absFilePath().data());
found=TRUE;
}
else if (fd->m_path[i]!=c)
{
found=TRUE;
}
}
++it;
}
++it;
i++;
}
i++;
}
for (it.toFirst();(fd=it.current());++it)
{
......
......@@ -737,17 +737,24 @@ void HtmlGenerator::init()
if (f.open(IO_WriteOnly))
{
const Resource *res = mgr.get("dynsections.js");
FTextStream t(&f);
t << (const char *)res->data;
if (Config_getBool("SOURCE_BROWSER") && Config_getBool("SOURCE_TOOLTIPS"))
if (res)
{
FTextStream t(&f);
t << (const char *)res->data;
if (Config_getBool("SOURCE_BROWSER") && Config_getBool("SOURCE_TOOLTIPS"))
{
t << endl <<
"$(document).ready(function() {\n"
" $('.code,.codeRef').each(function() {\n"
" $(this).data('powertip',$('#'+$(this).attr('href').replace(/.*\\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());\n"
" $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });\n"
" });\n"
"});\n";
}
}
else
{
t << endl <<
"$(document).ready(function() {\n"
" $('.code,.codeRef').each(function() {\n"
" $(this).data('powertip',$('#'+$(this).attr('href').replace(/.*\\//,'').replace(/[^a-z_A-Z0-9]/g,'_')).html());\n"
" $(this).powerTip({ placement: 's', smartPlacement: true, mouseOnToPopup: true });\n"
" });\n"
"});\n";
err("Resource dynsections.js not compiled in");
}
}
}
......@@ -896,7 +903,6 @@ void HtmlGenerator::writeSearchInfo(FTextStream &t,const QCString &relPath)
t << " onmouseover=\"return searchBox.OnSearchSelectShow()\"\n";
t << " onmouseout=\"return searchBox.OnSearchSelectHide()\"\n";
t << " onkeydown=\"return searchBox.OnSearchSelectKey(event)\">\n";
writeSearchCategories(t);
t << "</div>\n";
t << "\n";
t << "<!-- iframe showing the search results (closed by default) -->\n";
......
......@@ -2375,7 +2375,7 @@ void MarkdownFileParser::parseInput(const char *fileName,
Doxygen::markdownSupport = TRUE;
bool needsEntry = FALSE;
Protection prot;
Protection prot=Public;
while (parseCommentBlock(
this,
current,
......
......@@ -738,7 +738,7 @@ MemberDef::MemberDef(const char *df,int dl,int dc,
const char *t,const char *na,const char *a,const char *e,
Protection p,Specifier v,bool s,Relationship r,MemberType mt,
const ArgumentList *tal,const ArgumentList *al
) : Definition(df,dl,dc,removeRedundantWhiteSpace(na))
) : Definition(df,dl,dc,removeRedundantWhiteSpace(na)), visited(FALSE)
{
//printf("MemberDef::MemberDef(%s)\n",na);
m_impl = new MemberDefImpl;
......@@ -748,7 +748,7 @@ MemberDef::MemberDef(const char *df,int dl,int dc,
m_isDestructorCached = 0;
}
MemberDef::MemberDef(const MemberDef &md) : Definition(md)
MemberDef::MemberDef(const MemberDef &md) : Definition(md), visited(FALSE)
{
m_impl = new MemberDefImpl;
m_isLinkableCached = 0;
......
......@@ -33,16 +33,35 @@
#include "config.h"
#include "docparser.h"
MemberList::MemberList()
MemberList::MemberList() : m_listType(MemberListType_pubMethods)
{
memberGroupList=0;
m_varCnt=0;
m_funcCnt=0;
m_enumCnt=0;
m_enumValCnt=0;
m_typeCnt=0;
m_protoCnt=0;
m_defCnt=0;
m_friendCnt=0;
m_numDecMembers=-1; // special value indicating that value needs to be computed
m_numDocMembers=-1; // special value indicating that value needs to be computed
m_inGroup=FALSE;
m_inFile=FALSE;
m_needsSorting=FALSE;
}
MemberList::MemberList(MemberListType lt) : m_listType(lt)
{
memberGroupList=0;
m_varCnt=0;
m_funcCnt=0;
m_enumCnt=0;
m_enumValCnt=0;
m_typeCnt=0;
m_protoCnt=0;
m_defCnt=0;
m_friendCnt=0;
m_numDecMembers=-1; // special value indicating that value needs to be computed
m_numDocMembers=-1; // special value indicating that value needs to be computed
m_inGroup=FALSE;
......
......@@ -152,15 +152,16 @@ static void format_warn(const char *file,int line,const char *text)
static void do_warn(const char *tag, const char *file, int line, const char *prefix, const char *fmt, va_list args)
{
if (!Config_getBool(tag)) return; // warning type disabled
char text[40960];
const int bufSize = 40960;
char text[bufSize];
int l=0;
if (prefix)
{
strcpy(text,prefix);
qstrncpy(text,prefix,bufSize);
l=strlen(prefix);
}
vsnprintf(text+l, 40960-l, fmt, args);
text[40960-1]='\0';
vsnprintf(text+l, bufSize-l, fmt, args);
text[bufSize-1]='\0';
format_warn(file,line,text);
}
......
......@@ -71,8 +71,8 @@ struct CondCtx
struct FileState
{
FileState(int size) : fileBuf(size),
oldFileBuf(0), oldFileBufPos(0) {}
FileState(int size) : lineNr(1), fileBuf(size),
oldFileBuf(0), oldFileBufPos(0), bufState(0) {}
int lineNr;
BufStr fileBuf;
BufStr *oldFileBuf;
......
......@@ -1354,26 +1354,6 @@ void writeJavascriptSearchIndex()
Doxygen::indexList->addStyleSheetFile("search/search.js");
}
void writeSearchCategories(FTextStream &t)
{
#if 0
static SearchIndexCategoryMapping map;
int i,j=0;
for (i=0;i<NUM_SEARCH_INDICES;i++)
{
if (g_searchIndexCount[i]>0)
{
t << "<a class=\"SelectItem\" href=\"javascript:void(0)\" "
<< "onclick=\"searchBox.OnSelectItem(" << j << ")\">"
<< "<span class=\"SelectionMark\">&#160;</span>"
<< convertToXML(map.categoryLabel[i])
<< "</a>";
j++;
}
}
#endif
}
//---------------------------------------------------------------------------------------------
void initSearchIndexer()
......
......@@ -110,6 +110,5 @@ class SearchIndexExternal : public SearchIndexIntf
//------- client side search index ----------------------
void writeJavascriptSearchIndex();
void writeSearchCategories(FTextStream &t);
#endif
......@@ -382,9 +382,9 @@ int Store::read(char *buf,uint size)
void Store::printFreeList()
{
printf("FreeList: ");
portable_off_t pos = m_head->pos;
while (pos)
while (m_head)
{
portable_off_t pos = m_head->pos;
printf("%x ",(int)pos);
m_head = m_head->next;
}
......
......@@ -251,8 +251,20 @@ class TagFileParser : public QXmlDefaultHandler
{
m_startElementHandlers.setAutoDelete(TRUE);
m_endElementHandlers.setAutoDelete(TRUE);
m_curClass=0;
m_curFile=0;
m_curNamespace=0;
m_curPackage=0;
m_curGroup=0;
m_curPage=0;
m_curDir=0;
m_curMember=0;
m_curEnumValue=0;
m_curIncludes=0;
m_state = Invalid;
m_locator = 0;
}
void setDocumentLocator ( QXmlLocator * locator )
{
m_locator = locator;
......
This diff is collapsed.
......@@ -943,9 +943,9 @@ class TranslatorCroatian : public TranslatorAdapter_1_8_2
* be followed by a single name or by a list of names
* of the category.
*/
virtual QCString trMember(bool first_capital, bool singular)
virtual QCString trMember(bool, bool singular)
{
QCString result((first_capital ? "član" : "član"));
QCString result("član");
if (!singular) result+="ovi";
return result;
}
......
......@@ -3700,7 +3700,7 @@ void mergeArguments(ArgumentList *srcAl,ArgumentList *dstAl,bool forceNameOverwr
ArgumentListIterator srcAli(*srcAl),dstAli(*dstAl);
Argument *srcA,*dstA;
for (;(srcA=srcAli.current(),dstA=dstAli.current());++srcAli,++dstAli)
for (;(srcA=srcAli.current()) && (dstA=dstAli.current());++srcAli,++dstAli)
{
if (srcA->defval.isEmpty() && !dstA->defval.isEmpty())
{
......
......@@ -224,12 +224,11 @@ class XMLCodeGenerator : public CodeOutputInterface
{
public:
XMLCodeGenerator(FTextStream &t) : m_t(t), m_lineNumber(-1),
m_insideCodeLine(FALSE), m_normalHLNeedStartTag(TRUE),
m_insideSpecialHL(FALSE) {}
XMLCodeGenerator(FTextStream &t) : m_t(t), m_lineNumber(-1), m_isMemberRef(FALSE), m_col(0),
m_insideCodeLine(FALSE), m_normalHLNeedStartTag(TRUE), m_insideSpecialHL(FALSE) {}
virtual ~XMLCodeGenerator() { }
void codify(const char *text)
void codify(const char *text)
{
XML_DB(("(codify \"%s\")\n",text));
if (m_insideCodeLine && !m_insideSpecialHL && m_normalHLNeedStartTag)
......@@ -237,11 +236,11 @@ class XMLCodeGenerator : public CodeOutputInterface
m_t << "<highlight class=\"normal\">";
m_normalHLNeedStartTag=FALSE;
}
writeXMLCodeString(m_t,text,col);
writeXMLCodeString(m_t,text,m_col);
}
void writeCodeLink(const char *ref,const char *file,
const char *anchor,const char *name,
const char *tooltip)
const char *tooltip)
{
XML_DB(("(writeCodeLink)\n"));
if (m_insideCodeLine && !m_insideSpecialHL && m_normalHLNeedStartTag)
......@@ -250,7 +249,7 @@ class XMLCodeGenerator : public CodeOutputInterface
m_normalHLNeedStartTag=FALSE;
}
writeXMLLink(m_t,ref,file,anchor,name,tooltip);
col+=qstrlen(name);
m_col+=qstrlen(name);
}
void writeTooltip(const char *, const DocLinkInfo &, const char *,
const char *, const SourceLinkInfo &, const SourceLinkInfo &
......@@ -258,7 +257,7 @@ class XMLCodeGenerator : public CodeOutputInterface
{
XML_DB(("(writeToolTip)\n"));
}
void startCodeLine(bool)
void startCodeLine(bool)
{
XML_DB(("(startCodeLine)\n"));
m_t << "<codeline";
......@@ -282,11 +281,11 @@ class XMLCodeGenerator : public CodeOutputInterface
m_t << " external=\"" << m_external << "\"";
}
}
m_t << ">";
m_t << ">";
m_insideCodeLine=TRUE;
col=0;
m_col=0;
}
void endCodeLine()
void endCodeLine()
{
XML_DB(("(endCodeLine)\n"));
if (!m_insideSpecialHL && !m_normalHLNeedStartTag)
......@@ -300,7 +299,7 @@ class XMLCodeGenerator : public CodeOutputInterface
m_external.resize(0);
m_insideCodeLine=FALSE;
}
void startFontClass(const char *colorClass)
void startFontClass(const char *colorClass)
{
XML_DB(("(startFontClass)\n"));
if (m_insideCodeLine && !m_insideSpecialHL && !m_normalHLNeedStartTag)
......@@ -325,7 +324,7 @@ class XMLCodeGenerator : public CodeOutputInterface
const char *anchorId,int l)
{
XML_DB(("(writeLineNumber)\n"));
// we remember the information provided here to use it
// we remember the information provided here to use it
// at the <codeline> start tag.
m_lineNumber = l;
if (compId)
......@@ -349,12 +348,12 @@ class XMLCodeGenerator : public CodeOutputInterface
}
private:
FTextStream &m_t;
FTextStream &m_t;
QCString m_refId;
QCString m_external;
int m_lineNumber;
bool m_isMemberRef;
int col;
int m_col;
bool m_insideCodeLine;
bool m_normalHLNeedStartTag;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment