Browse Source

Merge pull request #58350 from kidrigger/patch-1

Rémi Verschelde 3 years ago
parent
commit
3000a3076b
1 changed files with 7 additions and 7 deletions
  1. 7 7
      core/extension/native_extension_manager.cpp

+ 7 - 7
core/extension/native_extension_manager.cpp

@@ -40,14 +40,14 @@ NativeExtensionManager::LoadStatus NativeExtensionManager::load_extension(const
 		return LOAD_STATUS_FAILED;
 		return LOAD_STATUS_FAILED;
 	}
 	}
 
 
-	if (level >= 0) { //already initialized up to some level
+	if (level >= 0) { // Already initialized up to some level.
 		int32_t minimum_level = extension->get_minimum_library_initialization_level();
 		int32_t minimum_level = extension->get_minimum_library_initialization_level();
 		if (minimum_level < MIN(level, NativeExtension::INITIALIZATION_LEVEL_SCENE)) {
 		if (minimum_level < MIN(level, NativeExtension::INITIALIZATION_LEVEL_SCENE)) {
 			return LOAD_STATUS_NEEDS_RESTART;
 			return LOAD_STATUS_NEEDS_RESTART;
 		}
 		}
-		//initialize up to current level
-		for (int32_t i = minimum_level; i < level; i++) {
-			extension->initialize_library(NativeExtension::InitializationLevel(level));
+		// Initialize up to current level.
+		for (int32_t i = minimum_level; i <= level; i++) {
+			extension->initialize_library(NativeExtension::InitializationLevel(i));
 		}
 		}
 	}
 	}
 	native_extension_map[p_path] = extension;
 	native_extension_map[p_path] = extension;
@@ -64,14 +64,14 @@ NativeExtensionManager::LoadStatus NativeExtensionManager::unload_extension(cons
 
 
 	Ref<NativeExtension> extension = native_extension_map[p_path];
 	Ref<NativeExtension> extension = native_extension_map[p_path];
 
 
-	if (level >= 0) { //already initialized up to some level
+	if (level >= 0) { // Already initialized up to some level.
 		int32_t minimum_level = extension->get_minimum_library_initialization_level();
 		int32_t minimum_level = extension->get_minimum_library_initialization_level();
 		if (minimum_level < MIN(level, NativeExtension::INITIALIZATION_LEVEL_SCENE)) {
 		if (minimum_level < MIN(level, NativeExtension::INITIALIZATION_LEVEL_SCENE)) {
 			return LOAD_STATUS_NEEDS_RESTART;
 			return LOAD_STATUS_NEEDS_RESTART;
 		}
 		}
-		//initialize up to current level
+		// Deinitialize down to current level.
 		for (int32_t i = level; i >= minimum_level; i--) {
 		for (int32_t i = level; i >= minimum_level; i--) {
-			extension->deinitialize_library(NativeExtension::InitializationLevel(level));
+			extension->deinitialize_library(NativeExtension::InitializationLevel(i));
 		}
 		}
 	}
 	}
 	native_extension_map.erase(p_path);
 	native_extension_map.erase(p_path);