Merge pull request #24883 from akien-mga/resourceformat-unregister

Consistency in resource format saver/loader de-registration
This commit is contained in:
Rémi Verschelde 2019-01-10 14:25:09 +01:00 committed by GitHub
commit 899ad484e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 39 additions and 70 deletions

View file

@ -68,8 +68,8 @@
static Ref<ResourceFormatSaverBinary> resource_saver_binary; static Ref<ResourceFormatSaverBinary> resource_saver_binary;
static Ref<ResourceFormatLoaderBinary> resource_loader_binary; static Ref<ResourceFormatLoaderBinary> resource_loader_binary;
static Ref<ResourceFormatImporter> resource_format_importer; static Ref<ResourceFormatImporter> resource_format_importer;
static Ref<ResourceFormatLoaderImage> resource_format_image; static Ref<ResourceFormatLoaderImage> resource_format_image;
static Ref<TranslationLoaderPO> resource_format_po;
static _ResourceLoader *_resource_loader = NULL; static _ResourceLoader *_resource_loader = NULL;
static _ResourceSaver *_resource_saver = NULL; static _ResourceSaver *_resource_saver = NULL;
@ -77,7 +77,6 @@ static _OS *_os = NULL;
static _Engine *_engine = NULL; static _Engine *_engine = NULL;
static _ClassDB *_classdb = NULL; static _ClassDB *_classdb = NULL;
static _Marshalls *_marshalls = NULL; static _Marshalls *_marshalls = NULL;
static Ref<TranslationLoaderPO> resource_format_po;
static _JSON *_json = NULL; static _JSON *_json = NULL;
static IP *ip = NULL; static IP *ip = NULL;
@ -251,25 +250,17 @@ void unregister_core_types() {
memdelete(_geometry); memdelete(_geometry);
if (resource_format_image.is_valid()) { ResourceLoader::remove_resource_format_loader(resource_format_image);
ResourceLoader::remove_resource_format_loader(resource_format_image); resource_format_image.unref();
resource_format_image.unref();
}
if (resource_saver_binary.is_valid()) { ResourceSaver::remove_resource_format_saver(resource_saver_binary);
ResourceSaver::remove_resource_format_saver(resource_saver_binary); resource_saver_binary.unref();
resource_saver_binary.unref();
}
if (resource_loader_binary.is_valid()) { ResourceLoader::remove_resource_format_loader(resource_loader_binary);
ResourceLoader::remove_resource_format_loader(resource_loader_binary); resource_loader_binary.unref();
resource_loader_binary.unref();
}
if (resource_format_importer.is_valid()) { ResourceLoader::remove_resource_format_loader(resource_format_importer);
ResourceLoader::remove_resource_format_loader(resource_format_importer); resource_format_importer.unref();
resource_format_importer.unref();
}
ResourceLoader::remove_resource_format_loader(resource_format_po); ResourceLoader::remove_resource_format_loader(resource_format_po);
resource_format_po.unref(); resource_format_po.unref();

View file

@ -59,10 +59,8 @@ void unregister_core_driver_types() {
if (image_loader_png) if (image_loader_png)
memdelete(image_loader_png); memdelete(image_loader_png);
if (resource_saver_png.is_valid()) { ResourceSaver::remove_resource_format_saver(resource_saver_png);
ResourceSaver::remove_resource_format_saver(resource_saver_png); resource_saver_png.unref();
resource_saver_png.unref();
}
} }
void register_driver_types() { void register_driver_types() {

View file

@ -314,9 +314,9 @@ void register_gdnative_types() {
ClassDB::register_class<GDNative>(); ClassDB::register_class<GDNative>();
resource_loader_gdnlib.instance(); resource_loader_gdnlib.instance();
resource_saver_gdnlib.instance();
ResourceLoader::add_resource_format_loader(resource_loader_gdnlib); ResourceLoader::add_resource_format_loader(resource_loader_gdnlib);
resource_saver_gdnlib.instance();
ResourceSaver::add_resource_format_saver(resource_saver_gdnlib); ResourceSaver::add_resource_format_saver(resource_saver_gdnlib);
GDNativeCallRegistry::singleton = memnew(GDNativeCallRegistry); GDNativeCallRegistry::singleton = memnew(GDNativeCallRegistry);
@ -395,9 +395,9 @@ void unregister_gdnative_types() {
#endif #endif
ResourceLoader::remove_resource_format_loader(resource_loader_gdnlib); ResourceLoader::remove_resource_format_loader(resource_loader_gdnlib);
ResourceSaver::remove_resource_format_saver(resource_saver_gdnlib);
resource_loader_gdnlib.unref(); resource_loader_gdnlib.unref();
ResourceSaver::remove_resource_format_saver(resource_saver_gdnlib);
resource_saver_gdnlib.unref(); resource_saver_gdnlib.unref();
// This is for printing out the sizes of the core types // This is for printing out the sizes of the core types

View file

@ -197,6 +197,7 @@ public:
}; };
class ResourceFormatLoaderVideoStreamGDNative : public ResourceFormatLoader { class ResourceFormatLoaderVideoStreamGDNative : public ResourceFormatLoader {
GDCLASS(ResourceFormatLoaderVideoStreamGDNative, ResourceFormatLoader)
public: public:
virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL); virtual RES load(const String &p_path, const String &p_original_path = "", Error *r_error = NULL);
virtual void get_recognized_extensions(List<String> *p_extensions) const; virtual void get_recognized_extensions(List<String> *p_extensions) const;

View file

@ -161,13 +161,9 @@ void unregister_gdscript_types() {
if (script_language_gd) if (script_language_gd)
memdelete(script_language_gd); memdelete(script_language_gd);
if (resource_loader_gd.is_valid()) { ResourceLoader::remove_resource_format_loader(resource_loader_gd);
ResourceLoader::remove_resource_format_loader(resource_loader_gd); resource_loader_gd.unref();
resource_loader_gd.unref();
}
if (resource_saver_gd.is_valid()) { ResourceSaver::remove_resource_format_saver(resource_saver_gd);
ResourceSaver::remove_resource_format_saver(resource_saver_gd); resource_saver_gd.unref();
resource_saver_gd.unref();
}
} }

View file

@ -65,15 +65,11 @@ void unregister_mono_types() {
if (script_language_cs) if (script_language_cs)
memdelete(script_language_cs); memdelete(script_language_cs);
if (resource_loader_cs.is_valid()) { ResourceLoader::remove_resource_format_loader(resource_loader_cs);
ResourceLoader::remove_resource_format_loader(resource_loader_cs); resource_loader_cs.unref();
resource_loader_cs.unref();
}
if (resource_saver_cs.is_valid()) { ResourceSaver::remove_resource_format_saver(resource_saver_cs);
ResourceSaver::remove_resource_format_saver(resource_saver_cs); resource_saver_cs.unref();
resource_saver_cs.unref();
}
if (_godotsharp) if (_godotsharp)
memdelete(_godotsharp); memdelete(_godotsharp);

View file

@ -45,8 +45,5 @@ void register_theora_types() {
void unregister_theora_types() { void unregister_theora_types() {
ResourceLoader::remove_resource_format_loader(resource_loader_theora); ResourceLoader::remove_resource_format_loader(resource_loader_theora);
resource_loader_theora.unref();
if (resource_loader_theora.is_valid()) {
resource_loader_theora.unref();
}
} }

View file

@ -45,8 +45,5 @@ void register_webm_types() {
void unregister_webm_types() { void unregister_webm_types() {
ResourceLoader::remove_resource_format_loader(resource_loader_webm); ResourceLoader::remove_resource_format_loader(resource_loader_webm);
resource_loader_webm.unref();
if (resource_loader_webm.is_valid()) {
resource_loader_webm.unref();
}
} }

View file

@ -746,27 +746,20 @@ void unregister_scene_types() {
DynamicFont::finish_dynamic_fonts(); DynamicFont::finish_dynamic_fonts();
if (resource_saver_text.is_valid()) { ResourceSaver::remove_resource_format_saver(resource_saver_text);
ResourceSaver::remove_resource_format_saver(resource_saver_text); resource_saver_text.unref();
resource_saver_text.unref();
}
if (resource_loader_text.is_valid()) {
ResourceLoader::remove_resource_format_loader(resource_loader_text);
resource_loader_text.unref();
}
if (resource_saver_shader.is_valid()) { ResourceLoader::remove_resource_format_loader(resource_loader_text);
ResourceSaver::remove_resource_format_saver(resource_saver_shader); resource_loader_text.unref();
resource_saver_shader.unref();
} ResourceSaver::remove_resource_format_saver(resource_saver_shader);
if (resource_loader_shader.is_valid()) { resource_saver_shader.unref();
ResourceLoader::remove_resource_format_loader(resource_loader_shader);
resource_loader_shader.unref(); ResourceLoader::remove_resource_format_loader(resource_loader_shader);
} resource_loader_shader.unref();
if (resource_loader_bmfont.is_valid()) {
ResourceLoader::remove_resource_format_loader(resource_loader_bmfont); ResourceLoader::remove_resource_format_loader(resource_loader_bmfont);
resource_loader_bmfont.unref(); resource_loader_bmfont.unref();
}
SpatialMaterial::finish_shaders(); SpatialMaterial::finish_shaders();
ParticlesMaterial::finish_shaders(); ParticlesMaterial::finish_shaders();