From 672e1a735411fa399fb2bba2b053aefba62b6e3d Mon Sep 17 00:00:00 2001 From: Rick Blommers Date: Wed, 28 Jun 2017 07:53:04 +0200 Subject: [PATCH] Refs #35, fixed some coverity scan issues --- .gitignore | 3 +++ edbee-lib/edbee/io/jsonparser.cpp | 1 + edbee-lib/edbee/models/changes/linedatalistchange.cpp | 2 ++ edbee-lib/edbee/models/changes/mergablechangegroup.cpp | 6 ++++-- edbee-lib/edbee/util/mem/debug_new.cpp | 2 +- edbee-lib/edbee/util/regexp.cpp | 6 +++++- edbee-lib/edbee/util/simpleprofiler.cpp | 6 +++--- edbee-lib/edbee/views/components/texteditorrenderer.cpp | 1 + edbee-lib/edbee/views/textrenderer.cpp | 4 ++++ 9 files changed, 24 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index e15dc64..7fc4ee2 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,6 @@ cmake_install.cmake install_manifest.txt compile_commands.json CTestTestfile.cmake +cov-int + +edbee-test/edbee-test \ No newline at end of file diff --git a/edbee-lib/edbee/io/jsonparser.cpp b/edbee-lib/edbee/io/jsonparser.cpp index 8bd63ca..c5e6757 100644 --- a/edbee-lib/edbee/io/jsonparser.cpp +++ b/edbee-lib/edbee/io/jsonparser.cpp @@ -63,6 +63,7 @@ bool JsonParser::parse( QIODevice* device ) errorMessage_ = device->errorString(); return false; } + opened = true; } QByteArray bytesIn = device->readAll(); diff --git a/edbee-lib/edbee/models/changes/linedatalistchange.cpp b/edbee-lib/edbee/models/changes/linedatalistchange.cpp index d0bbaad..bcf5cbe 100644 --- a/edbee-lib/edbee/models/changes/linedatalistchange.cpp +++ b/edbee-lib/edbee/models/changes/linedatalistchange.cpp @@ -89,6 +89,8 @@ void LineDataListChange::revert(TextDocument* doc) void LineDataListChange::mergeStoredData(AbstractRangedChange* change) { LineDataListChange* lineTextChange = dynamic_cast(change); + Q_ASSERT(lineTextChange ); // this shouldn't happen + if( !lineTextChange ) return; // calculate the new size int newOldListSize = getMergedStoredLength( change);// qlog_info() << "CALCULATED: " << newOldListSize ; diff --git a/edbee-lib/edbee/models/changes/mergablechangegroup.cpp b/edbee-lib/edbee/models/changes/mergablechangegroup.cpp index 9114a6d..98a8516 100644 --- a/edbee-lib/edbee/models/changes/mergablechangegroup.cpp +++ b/edbee-lib/edbee/models/changes/mergablechangegroup.cpp @@ -397,8 +397,10 @@ QString MergableChangeGroup::toSingleTextChangeTestString() QString result; foreach( AbstractRangedChange* abstractChange, textChangeList_ ) { TextChange* change = dynamic_cast(abstractChange); - if( !result.isEmpty() ) result.append(","); - result.append( QString("%1:%2:%3").arg(change->offset()).arg(change->docLength()).arg(change->storedText()) ); + if( change ) { + if( !result.isEmpty() ) result.append(","); + result.append( QString("%1:%2:%3").arg(change->offset()).arg(change->docLength()).arg(change->storedText()) ); + } } return result; } diff --git a/edbee-lib/edbee/util/mem/debug_new.cpp b/edbee-lib/edbee/util/mem/debug_new.cpp index d84771a..449180d 100644 --- a/edbee-lib/edbee/util/mem/debug_new.cpp +++ b/edbee-lib/edbee/util/mem/debug_new.cpp @@ -102,7 +102,7 @@ void* operator new[] (size_t size, const char* file, const int line) /// the delete array operator void operator delete[] (void* p, const char* file, const int line) { - delete[] p; +// delete[] p; << This is strange!! return debug_free(p, file, line); } diff --git a/edbee-lib/edbee/util/regexp.cpp b/edbee-lib/edbee/util/regexp.cpp index 760f775..08e7274 100644 --- a/edbee-lib/edbee/util/regexp.cpp +++ b/edbee-lib/edbee/util/regexp.cpp @@ -85,6 +85,7 @@ class OnigRegExpEngine : public RegExpEngine : reg_(0) , region_(0) , pattern_(pattern) + , lineRef_(0) { const QChar* patternChars = pattern.constData(); @@ -389,11 +390,14 @@ RegExp::RegExp( const QString& pattern, bool caseSensitive, Syntax syntax, Engin case EngineQRegExp: d_ = new QtRegExpEngine(pattern, caseSensitive, syntax); break; + case EngineOniguruma: + d_ = new OnigRegExpEngine(pattern, caseSensitive, syntax); + break; default: Q_ASSERT(false); qlog_warn() << "Invalid engine supplied to RegExp. Falling back to EngineOniguruma"; - case EngineOniguruma: d_ = new OnigRegExpEngine(pattern, caseSensitive, syntax); + break; } } diff --git a/edbee-lib/edbee/util/simpleprofiler.cpp b/edbee-lib/edbee/util/simpleprofiler.cpp index af40ac0..c10c645 100644 --- a/edbee-lib/edbee/util/simpleprofiler.cpp +++ b/edbee-lib/edbee/util/simpleprofiler.cpp @@ -102,9 +102,9 @@ void SimpleProfiler::dumpResults() } foreach( ProfilerItem* item, items ) { - double durationPercentage = 100.0 * item->duration() / totalDuration; - double callCountPercentage = 100.0 * item->callCount() / totalCallCount; - double durationWithoutChildsPercenage = 100.0 * item->durationWithoutChilds() / totalDurationWitoutChilds; + double durationPercentage = totalDuration > 0 ? 100.0 * item->duration() / totalDuration : 100; + double callCountPercentage = totalCallCount > 0 ? 100.0 * item->callCount() / totalCallCount : 100; + double durationWithoutChildsPercenage = totalDurationWitoutChilds > 0 ? 100.0 * item->durationWithoutChilds() / totalDurationWitoutChilds : 100; QString line = QString("%1x(%2%) %3ms(%4%) %5ms(%6%) | %7:%8 %9") .arg(item->callCount(),8).arg( callCountPercentage, 6, 'f', 2 ) diff --git a/edbee-lib/edbee/views/components/texteditorrenderer.cpp b/edbee-lib/edbee/views/components/texteditorrenderer.cpp index 716751c..9d8fd8b 100644 --- a/edbee-lib/edbee/views/components/texteditorrenderer.cpp +++ b/edbee-lib/edbee/views/components/texteditorrenderer.cpp @@ -26,6 +26,7 @@ static const int ShadowWidth=5; TextEditorRenderer::TextEditorRenderer( TextRenderer *renderer ) : rendererRef_(renderer) + , themeRef_(0) , shadowGradient_(0) { shadowGradient_ = new QLinearGradient( 0, 0, ShadowWidth, 0 ); diff --git a/edbee-lib/edbee/views/textrenderer.cpp b/edbee-lib/edbee/views/textrenderer.cpp index 2a3f576..037ed52 100644 --- a/edbee-lib/edbee/views/textrenderer.cpp +++ b/edbee-lib/edbee/views/textrenderer.cpp @@ -38,6 +38,10 @@ TextRenderer::TextRenderer(TextEditorController* controller) , totalWidthCache_(0) , textThemeStyler_(0) , clipRectRef_(0) + , startOffset_(0) + , endOffset_(0) + , startLine_(0) + , endLine_(0) { connect( controller, SIGNAL(textDocumentChanged(edbee::TextDocument*,edbee::TextDocument*)), this, SLOT(textDocumentChanged(edbee::TextDocument*,edbee::TextDocument*))); textThemeStyler_ = new TextThemeStyler( controller );