aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2007-11-18 19:51:13 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2007-11-18 19:51:13 +0000
commit10923b3e9f495e70a23d4dcbc3c891b7517e667f (patch)
treed31e4820ca1296a584e7064036acf0d21855cbef
parentbdfdce7315b4db7b6d2a5c8f3ce418a747dfc9c6 (diff)
downloadqmmp-10923b3e9f495e70a23d4dcbc3c891b7517e667f.tar.gz
qmmp-10923b3e9f495e70a23d4dcbc3c891b7517e667f.tar.bz2
qmmp-10923b3e9f495e70a23d4dcbc3c891b7517e667f.zip
fixed segmentation error in shaded mode
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@189 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/shadedvisual.cpp38
1 files changed, 22 insertions, 16 deletions
diff --git a/src/shadedvisual.cpp b/src/shadedvisual.cpp
index e7bb5d683..2dea3d419 100644
--- a/src/shadedvisual.cpp
+++ b/src/shadedvisual.cpp
@@ -28,7 +28,7 @@
#include "shadedvisual.h"
ShadedVisual::ShadedVisual(QWidget *parent)
- : Visual(parent)
+ : Visual(parent)
{
setFixedSize(38,5);
m_pixmap = QPixmap (38,5);
@@ -43,10 +43,9 @@ ShadedVisual::ShadedVisual(QWidget *parent)
ShadedVisual::~ShadedVisual()
-{
-}
+{}
-void ShadedVisual::add(Buffer *b, unsigned long w, int c, int p)
+void ShadedVisual::add(Buffer *b, unsigned long w, int c, int p)
{
if (!m_timer->isActive ())
return;
@@ -87,7 +86,7 @@ void ShadedVisual::add(Buffer *b, unsigned long w, int c, int p)
void ShadedVisual::clear()
{
- while (!m_nodes.isEmpty())
+ while (!m_nodes.isEmpty())
m_nodes.removeFirst();
m_l = 0;
m_r = 0;
@@ -148,15 +147,22 @@ void ShadedVisual::process (VisualNode *node)
for (int i = 0; i < 75; ++i)
{
pos += step;
- j_l = abs((node->left[pos >> 8] >> 12));
- j_r = abs((node->right[pos >> 8] >> 12));
-
- if (j_l > 15)
- j_l = 15;
- if (j_r > 15)
- j_r = 15;
- l = qMax(l, j_l);
- r = qMax(r, j_r);
+
+ if (node->left)
+ {
+ j_l = abs((node->left[pos >> 8] >> 12));
+
+ if (j_l > 15)
+ j_l = 15;
+ l = qMax(l, j_l);
+ }
+ if (node->right)
+ {
+ j_r = abs((node->right[pos >> 8] >> 12));
+ if (j_r > 15)
+ j_r = 15;
+ r = qMax(r, j_r);
+ }
}
m_l -= 0.5;
m_l = m_l > l ? m_l : l;
@@ -166,11 +172,11 @@ void ShadedVisual::process (VisualNode *node)
void ShadedVisual::draw (QPainter *p)
{
- for(int i = 0; i < m_l; ++i)
+ for (int i = 0; i < m_l; ++i)
{
p->fillRect (i*3, 0, 3, 2, QBrush(m_skin->getVisColor (17-i)));
}
- for(int i = 0; i < m_r; ++i)
+ for (int i = 0; i < m_r; ++i)
{
p->fillRect (i*3, 3, 3, 2, QBrush(m_skin->getVisColor (17-i)));
}