Memory leak corrected (was using wrong delete implementation) also others issue with array

WeightedClusterFit compress function access array that can go over the
count limit, since count is x, you cannot access an array at position x,
so the correction change the for loop to instead using <= count, use <
count which correct the issue...
pull/229/head
Sylvain Rochette 9 years ago
parent 58617584d4
commit 6a465c8489

@ -313,7 +313,7 @@ Kernel1::Kernel1(const Filter & f, int iscale, int samples/*= 32*/)
Kernel1::~Kernel1()
{
delete m_data;
delete [] m_data;
}
// Print the kernel for debugging purposes.
@ -349,7 +349,7 @@ Kernel2::Kernel2(const Kernel2 & k) : m_windowSize(k.m_windowSize)
Kernel2::~Kernel2()
{
delete m_data;
delete [] m_data;
}
// Normalize the filter.

@ -149,11 +149,11 @@ void WeightedClusterFit::Compress3( void* block )
int b0 = 0, b1 = 0;
// check all possible clusters for this total order
for( int c0 = 0; c0 <= count; c0++)
for( int c0 = 0; c0 < count; c0++)
{
Vec4 x1 = zero;
for( int c1 = 0; c1 <= count-c0; c1++)
for( int c1 = 0; c1 < count-c0; c1++)
{
Vec4 const x2 = m_xsum - x1 - x0;
@ -264,15 +264,15 @@ void WeightedClusterFit::Compress4( void* block )
int b0 = 0, b1 = 0, b2 = 0;
// check all possible clusters for this total order
for( int c0 = 0; c0 <= count; c0++)
for( int c0 = 0; c0 < count; c0++)
{
Vec4 x1 = zero;
for( int c1 = 0; c1 <= count-c0; c1++)
for( int c1 = 0; c1 < count-c0; c1++)
{
Vec4 x2 = zero;
for( int c2 = 0; c2 <= count-c0-c1; c2++)
for( int c2 = 0; c2 < count-c0-c1; c2++)
{
Vec4 const x3 = m_xsum - x2 - x1 - x0;
@ -389,12 +389,12 @@ void WeightedClusterFit::Compress3( void* block )
int b0 = 0, b1 = 0;
// check all possible clusters for this total order
for( int c0 = 0; c0 <= count; c0++)
for( int c0 = 0; c0 < count; c0++)
{
Vec3 x1(0.0f);
float w1 = 0.0f;
for( int c1 = 0; c1 <= count-c0; c1++)
for( int c1 = 0; c1 < count-c0; c1++)
{
float w2 = m_wsum - w0 - w1;
@ -492,17 +492,17 @@ void WeightedClusterFit::Compress4( void* block )
int b0 = 0, b1 = 0, b2 = 0;
// check all possible clusters for this total order
for( int c0 = 0; c0 <= count; c0++)
for( int c0 = 0; c0 < count; c0++)
{
Vec3 x1(0.0f);
float w1 = 0.0f;
for( int c1 = 0; c1 <= count-c0; c1++)
for( int c1 = 0; c1 < count-c0; c1++)
{
Vec3 x2(0.0f);
float w2 = 0.0f;
for( int c2 = 0; c2 <= count-c0-c1; c2++)
for( int c2 = 0; c2 < count-c0-c1; c2++)
{
float w3 = m_wsum - w0 - w1 - w2;

Loading…
Cancel
Save