forked from bartvdbraak/blender
Fix T55115: crash when iterating SmokeDomainSettings color_grid property
through python
This commit is contained in:
parent
1cc4ab481e
commit
5e7a21a5f5
@ -286,9 +286,15 @@ static void rna_SmokeModifier_color_grid_get(PointerRNA *ptr, float *values)
|
|||||||
{
|
{
|
||||||
#ifdef WITH_SMOKE
|
#ifdef WITH_SMOKE
|
||||||
SmokeDomainSettings *sds = (SmokeDomainSettings *)ptr->data;
|
SmokeDomainSettings *sds = (SmokeDomainSettings *)ptr->data;
|
||||||
|
int length[RNA_MAX_ARRAY_DIMENSION];
|
||||||
|
int size = rna_SmokeModifier_grid_get_length(ptr, length);
|
||||||
|
|
||||||
BLI_rw_mutex_lock(sds->fluid_mutex, THREAD_LOCK_READ);
|
BLI_rw_mutex_lock(sds->fluid_mutex, THREAD_LOCK_READ);
|
||||||
|
|
||||||
|
if (!sds->fluid) {
|
||||||
|
memset(values, 0, size * sizeof(float));
|
||||||
|
}
|
||||||
|
else {
|
||||||
if (sds->flags & MOD_SMOKE_HIGHRES) {
|
if (sds->flags & MOD_SMOKE_HIGHRES) {
|
||||||
if (smoke_turbulence_has_colors(sds->wt))
|
if (smoke_turbulence_has_colors(sds->wt))
|
||||||
smoke_turbulence_get_rgba(sds->wt, values, 0);
|
smoke_turbulence_get_rgba(sds->wt, values, 0);
|
||||||
@ -301,6 +307,7 @@ static void rna_SmokeModifier_color_grid_get(PointerRNA *ptr, float *values)
|
|||||||
else
|
else
|
||||||
smoke_get_rgba_from_density(sds->fluid, sds->active_color, values, 0);
|
smoke_get_rgba_from_density(sds->fluid, sds->active_color, values, 0);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
BLI_rw_mutex_unlock(sds->fluid_mutex);
|
BLI_rw_mutex_unlock(sds->fluid_mutex);
|
||||||
#else
|
#else
|
||||||
|
Loading…
Reference in New Issue
Block a user