summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gles3/storage/material_storage.cpp3
-rw-r--r--servers/rendering/renderer_rd/storage_rd/material_storage.cpp3
2 files changed, 4 insertions, 2 deletions
diff --git a/drivers/gles3/storage/material_storage.cpp b/drivers/gles3/storage/material_storage.cpp
index 1aaf840b30..41c23fc3ec 100644
--- a/drivers/gles3/storage/material_storage.cpp
+++ b/drivers/gles3/storage/material_storage.cpp
@@ -874,7 +874,8 @@ void MaterialData::update_textures(const HashMap<StringName, Variant> &p_paramet
if (V->value.is_array()) {
Array array = (Array)V->value;
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]);
}
} else {
diff --git a/servers/rendering/renderer_rd/storage_rd/material_storage.cpp b/servers/rendering/renderer_rd/storage_rd/material_storage.cpp
index 13b00be1c4..8b74ebfacd 100644
--- a/servers/rendering/renderer_rd/storage_rd/material_storage.cpp
+++ b/servers/rendering/renderer_rd/storage_rd/material_storage.cpp
@@ -807,7 +807,8 @@ void MaterialStorage::MaterialData::update_textures(const HashMap<StringName, Va
if (V->value.is_array()) {
Array array = (Array)V->value;
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]);
}
} else {