Fix possible index out of bounds exception
authorAlan Alpert <alan.alpert@nokia.com>
Tue, 5 Jul 2011 05:16:55 +0000 (15:16 +1000)
committerQt by Nokia <qt-info@nokia.com>
Thu, 7 Jul 2011 08:00:54 +0000 (10:00 +0200)
The sprite engine count needs to grow to the same size as the system
index count, as the indexes are synchronized.

Change-Id: I299816bfe6ea437202a60078a512b8f1114cfea3
Reviewed-on: http://codereview.qt.nokia.com/1138
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>

src/declarative/particles/qsgparticlesystem.cpp

index d648d46..97c73dc 100644 (file)
@@ -739,8 +739,12 @@ int QSGParticleSystem::nextSystemIndex()
         m_reusableIndexes.remove(ret);
         return ret;
     }
-    if (m_nextIndex >= m_bySysIdx.size())
+    if (m_nextIndex >= m_bySysIdx.size()){
         m_bySysIdx.resize(m_bySysIdx.size() < 10 ? 10 : m_bySysIdx.size()*1.1);//###+1,10%,+10? Choose something non-arbitrarily
+        if (m_spriteEngine)
+            m_spriteEngine->setCount(m_bySysIdx.size());
+
+    }
     return m_nextIndex++;
 }