diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-06-08 16:39:08 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2020-06-08 16:48:21 +0200 |
commit | 2b5545270a60a1a60f57c91bb565131dc03de74d (patch) | |
tree | 33104d8cf8a707406d5ec068e6a141d6f8ad2ee5 /core/resource.cpp | |
parent | d9f0477dad0aeb92d16da8d8bff37bece0f9fedd (diff) |
Core: Add hints to run with --verbose when leaking nodes/resources at exit
Diffstat (limited to 'core/resource.cpp')
-rw-r--r-- | core/resource.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/core/resource.cpp b/core/resource.cpp index 0af8c9c2b3..3b589793ef 100644 --- a/core/resource.cpp +++ b/core/resource.cpp @@ -33,6 +33,7 @@ #include "core/core_string_names.h" #include "core/io/resource_loader.h" #include "core/os/file_access.h" +#include "core/os/os.h" #include "core/script_language.h" #include "scene/main/node.h" //only so casting works @@ -431,7 +432,14 @@ void ResourceCache::setup() { void ResourceCache::clear() { if (resources.size()) { - ERR_PRINT("Resources Still in use at Exit!"); + ERR_PRINT("Resources still in use at exit (run with --verbose for details)."); + if (OS::get_singleton()->is_stdout_verbose()) { + const String *K = nullptr; + while ((K = resources.next(K))) { + Resource *r = resources[*K]; + print_line(vformat("Resource still in use: %s (%s)", *K, r->get_class())); + } + } } resources.clear(); @@ -442,12 +450,6 @@ void ResourceCache::clear() { } void ResourceCache::reload_externals() { - /* - const String *K=nullptr; - while ((K=resources.next(K))) { - resources[*K]->reload_external_data(); - } - */ } bool ResourceCache::has(const String &p_path) { @@ -530,6 +532,5 @@ void ResourceCache::dump(const char *p_file, bool p_short) { } lock->read_unlock(); - #endif } |