Merge pull request #104738 from YYF233333/cleanup_rid_owner

Use `LocalVector` in `RID_Owner::get_owned_list`
This commit is contained in:
Thaddeus Crews
2025-04-22 10:44:25 -05:00
11 changed files with 74 additions and 102 deletions

View File

@@ -841,13 +841,11 @@ bool ShaderGLES3::shader_cache_save_compressed_zstd = true;
bool ShaderGLES3::shader_cache_save_debug = true;
ShaderGLES3::~ShaderGLES3() {
List<RID> remaining;
version_owner.get_owned_list(&remaining);
LocalVector<RID> remaining = version_owner.get_owned_list();
if (remaining.size()) {
ERR_PRINT(itos(remaining.size()) + " shaders of type " + name + " were never freed");
while (remaining.size()) {
version_free(remaining.front()->get());
remaining.pop_front();
for (RID &rid : remaining) {
version_free(rid);
}
}
}

View File

@@ -1470,10 +1470,7 @@ void TextureStorage::texture_set_detect_roughness_callback(RID p_texture, RS::Te
}
void TextureStorage::texture_debug_usage(List<RS::TextureInfo> *r_info) {
List<RID> textures;
texture_owner.get_owned_list(&textures);
for (const RID &rid : textures) {
for (const RID &rid : texture_owner.get_owned_list()) {
Texture *t = texture_owner.get_or_null(rid);
if (!t) {
continue;