diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2007-11-18 19:51:13 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2007-11-18 19:51:13 +0000 |
| commit | 10923b3e9f495e70a23d4dcbc3c891b7517e667f (patch) | |
| tree | d31e4820ca1296a584e7064036acf0d21855cbef /src/shadedvisual.cpp | |
| parent | bdfdce7315b4db7b6d2a5c8f3ce418a747dfc9c6 (diff) | |
| download | qmmp-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
Diffstat (limited to 'src/shadedvisual.cpp')
| -rw-r--r-- | src/shadedvisual.cpp | 38 |
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))); } |
