diff --git a/ThirdParty/nightcharts/nightcharts.cpp b/ThirdParty/nightcharts/nightcharts.cpp index ec712276be..a53053766b 100644 --- a/ThirdParty/nightcharts/nightcharts.cpp +++ b/ThirdParty/nightcharts/nightcharts.cpp @@ -37,7 +37,13 @@ Nightcharts::Nightcharts()//QPainter *painter) lX = cX+cW+20; lY = cY; shadows = true; + + // NOTE: This value is accumulated, and might end up with overflow + // Was originally uninitialized, and caused overflow issues and invalid drawing when running debug + // Suggest rewrite and use locally defined aggregatedAngle (see below for usage) + palpha = 0.0; } + Nightcharts::~Nightcharts() { pieces.clear(); @@ -143,6 +149,7 @@ int Nightcharts::draw(QPainter *painter) QPen pen; pen.setWidth(2); + double aggregatedAngle = 0.0; for (int i=0;isetPen(pen); pdegree = 3.6*pieces[i].pPerc; - painter->drawPie(cX,cY,cW,cH,palpha*16,pdegree*16); - palpha += pdegree; + painter->drawPie(cX,cY,cW,cH,aggregatedAngle*16,pdegree*16); + aggregatedAngle += pdegree; } } else if (this->ctype==Nightcharts::Dpie)