Fix T40459: Gauss table can be NULL when ending the blur node operation,
which must not be passed to MEM_freeN.
This commit is contained in:
parent
7674ebf340
commit
27630f41a7
Notes:
blender-bot
2023-02-14 10:33:05 +01:00
Referenced by issue #40459, Blender Crash after File Open
|
@ -146,10 +146,16 @@ void GaussianAlphaXBlurOperation::executePixel(float output[4], int x, int y, vo
|
|||
void GaussianAlphaXBlurOperation::deinitExecution()
|
||||
{
|
||||
BlurBaseOperation::deinitExecution();
|
||||
MEM_freeN(this->m_gausstab);
|
||||
this->m_gausstab = NULL;
|
||||
MEM_freeN(this->m_distbuf_inv);
|
||||
this->m_distbuf_inv = NULL;
|
||||
|
||||
if (this->m_gausstab) {
|
||||
MEM_freeN(this->m_gausstab);
|
||||
this->m_gausstab = NULL;
|
||||
}
|
||||
|
||||
if (this->m_distbuf_inv) {
|
||||
MEM_freeN(this->m_distbuf_inv);
|
||||
this->m_distbuf_inv = NULL;
|
||||
}
|
||||
|
||||
deinitMutex();
|
||||
}
|
||||
|
|
|
@ -146,10 +146,16 @@ void GaussianAlphaYBlurOperation::executePixel(float output[4], int x, int y, vo
|
|||
void GaussianAlphaYBlurOperation::deinitExecution()
|
||||
{
|
||||
BlurBaseOperation::deinitExecution();
|
||||
MEM_freeN(this->m_gausstab);
|
||||
this->m_gausstab = NULL;
|
||||
MEM_freeN(this->m_distbuf_inv);
|
||||
this->m_distbuf_inv = NULL;
|
||||
|
||||
if (this->m_gausstab) {
|
||||
MEM_freeN(this->m_gausstab);
|
||||
this->m_gausstab = NULL;
|
||||
}
|
||||
|
||||
if (this->m_distbuf_inv) {
|
||||
MEM_freeN(this->m_distbuf_inv);
|
||||
this->m_distbuf_inv = NULL;
|
||||
}
|
||||
|
||||
deinitMutex();
|
||||
}
|
||||
|
|
|
@ -157,8 +157,11 @@ void GaussianBokehBlurOperation::executePixel(float output[4], int x, int y, voi
|
|||
void GaussianBokehBlurOperation::deinitExecution()
|
||||
{
|
||||
BlurBaseOperation::deinitExecution();
|
||||
MEM_freeN(this->m_gausstab);
|
||||
this->m_gausstab = NULL;
|
||||
|
||||
if (this->m_gausstab) {
|
||||
MEM_freeN(this->m_gausstab);
|
||||
this->m_gausstab = NULL;
|
||||
}
|
||||
|
||||
deinitMutex();
|
||||
}
|
||||
|
|
|
@ -100,6 +100,7 @@ void GaussianXBlurOperation::executePixel(float output[4], int x, int y, void *d
|
|||
void GaussianXBlurOperation::deinitExecution()
|
||||
{
|
||||
BlurBaseOperation::deinitExecution();
|
||||
|
||||
if (this->m_gausstab) {
|
||||
MEM_freeN(this->m_gausstab);
|
||||
this->m_gausstab = NULL;
|
||||
|
|
|
@ -101,6 +101,7 @@ void GaussianYBlurOperation::executePixel(float output[4], int x, int y, void *d
|
|||
void GaussianYBlurOperation::deinitExecution()
|
||||
{
|
||||
BlurBaseOperation::deinitExecution();
|
||||
|
||||
if (this->m_gausstab) {
|
||||
MEM_freeN(this->m_gausstab);
|
||||
this->m_gausstab = NULL;
|
||||
|
|
Loading…
Reference in New Issue