--Bug fixes

-Fix out of bounds crash in EmberGenome.
This commit is contained in:
Person 2018-06-19 19:32:20 -07:00
parent f84389d7a5
commit 264aa8c454

View File

@ -846,8 +846,8 @@ public:
//Scale the image so that the total number of pixels is ~10,000. //Scale the image so that the total number of pixels is ~10,000.
pixTotal = ember.m_FinalRasW * ember.m_FinalRasH; pixTotal = ember.m_FinalRasW * ember.m_FinalRasH;
scalar = std::sqrt(T(10000) / pixTotal); scalar = std::sqrt(T(10000) / pixTotal);
adjustedEmber.m_FinalRasW = static_cast<size_t>(ember.m_FinalRasW * scalar); adjustedEmber.m_FinalRasW = static_cast<size_t>(std::ceil(ember.m_FinalRasW * scalar));
adjustedEmber.m_FinalRasH = static_cast<size_t>(ember.m_FinalRasH * scalar); adjustedEmber.m_FinalRasH = static_cast<size_t>(std::ceil(ember.m_FinalRasH * scalar));
adjustedEmber.m_PixelsPerUnit *= scalar; adjustedEmber.m_PixelsPerUnit *= scalar;
adjustedEmber.m_TemporalSamples = 1; adjustedEmber.m_TemporalSamples = 1;
m_Renderer->SetEmber(adjustedEmber); m_Renderer->SetEmber(adjustedEmber);
@ -859,14 +859,15 @@ public:
return -1; return -1;
} }
m_Hist.resize(res3); m_Hist.resize(res + res + (res * res) + (res * res * res));//Add one extra res just to be safe.
Memset(m_Hist); Memset(m_Hist);
auto p = m_FinalImage.data();
for (i = 0; i < m_Renderer->FinalDimensions(); i++) for (i = 0; i < m_FinalImage.size(); i++)
{ {
m_Hist[size_t((p->r * res) + (p->g * res) * res + (p->b * res) * res * res)]++;//A specific histogram index representing the sum of R,G,B values. auto& p = m_FinalImage[i];
p++; m_Hist[size_t((p.r * res) +
(p.g * res) * res +
(p.b * res) * res * res)]++;//A specific histogram index representing the sum of R,G,B values.
} }
for (i = 0; i < res3; i++) for (i = 0; i < res3; i++)