Merge pull request #94628 from Chaosus/rendering_fix_crash

Fix crash when assigning more textures than expected to texture array
This commit is contained in:
Rémi Verschelde 2024-07-23 13:08:18 +02:00
commit ad1955a63d
No known key found for this signature in database
GPG key ID: C3336907360768E1
2 changed files with 4 additions and 2 deletions

View file

@ -874,7 +874,8 @@ void MaterialData::update_textures(const HashMap<StringName, Variant> &p_paramet
if (V->value.is_array()) { if (V->value.is_array()) {
Array array = (Array)V->value; Array array = (Array)V->value;
if (uniform_array_size > 0) { if (uniform_array_size > 0) {
for (int j = 0; j < array.size(); j++) { int size = MIN(uniform_array_size, array.size());
for (int j = 0; j < size; j++) {
textures.push_back(array[j]); textures.push_back(array[j]);
} }
} else { } else {

View file

@ -807,7 +807,8 @@ void MaterialStorage::MaterialData::update_textures(const HashMap<StringName, Va
if (V->value.is_array()) { if (V->value.is_array()) {
Array array = (Array)V->value; Array array = (Array)V->value;
if (uniform_array_size > 0) { if (uniform_array_size > 0) {
for (int j = 0; j < array.size(); j++) { int size = MIN(uniform_array_size, array.size());
for (int j = 0; j < size; j++) {
textures.push_back(array[j]); textures.push_back(array[j]);
} }
} else { } else {