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()