From 14db770ef58d92c11834ac22c39e7e63f3236058 Mon Sep 17 00:00:00 2001 From: JeremyStarTM Date: Fri, 10 May 2024 19:17:14 +0200 Subject: [PATCH] Update to b78ae9dd30177e963c59c87ed5fcc93aae4408cc --- src/core.gd | 9 ++++++--- src/logger.gd | 6 ++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/core.gd b/src/core.gd index 813582b..c8a160e 100644 --- a/src/core.gd +++ b/src/core.gd @@ -208,7 +208,7 @@ Thank you for using the CORE Framework to develop your application or game!""".r func reload_configuration(new_config: CoreConfiguration = CoreConfiguration.new()) -> void: var initialized = config != null if initialized: loggeri.verb("Reloading CORE's configuration") - if config != null: config.queue_free() + if is_instance_valid(config): config.free() config = new_config.duplicate() if is_devmode(): # Override configuration in development mode config.logger_level = CoreTypes.LoggerLevel.DIAG @@ -291,20 +291,23 @@ func cleanup() -> void: else: loggeri.diag("Calling cleanup hook #" + str(hook)) await cleanup_hooks[hook].call() + await get_tree().process_frame loggeri.verb("Unregistering custom modules") for module in custom_modules_node.get_children(): await unregister_custom_module(module.name) + await get_tree().process_frame loggeri.verb("Removing custom module support") remove_child(custom_modules_node) custom_modules_node.queue_free() + await get_tree().process_frame loggeri.verb("Unloading built-in modules") var modules_reverse: Array[String] = modules.duplicate() modules_reverse.reverse() for module in modules_reverse: await get(module)._cleanup() get(module).queue_free() - print("Freeing configuration") - config.queue_free() await get_tree().process_frame + print("Freeing configuration") + config.free() print("Freeing") queue_free() diff --git a/src/logger.gd b/src/logger.gd index 0acdbd6..c2deee7 100644 --- a/src/logger.gd +++ b/src/logger.gd @@ -52,13 +52,15 @@ func _cleanup() -> void: func _schedule() -> void: var instances_remove_enty: Array[CoreLoggerInstance] = [] for instance in instances: - instances_remove_enty.append(instance) if !is_instance_valid(instance): continue if !is_instance_valid(instance.parent): logger.diag("Removing instance '" + instance.name + "'") instance.queue_free() + instances_remove_enty.append(instance) for instance in instances_remove_enty: - instances.remove_at(instances.find(instance)) + var index: int = instances.find(instance) + if index == -1: logger.error("Invalid index -1") + else: instances.remove_at(index) func _pull_config() -> void: config_level = core.config.logger_level