瀏覽代碼

Merge pull request #66687 from Waridley/free_gdn_method_binds

free NativeExtensionMethodBinds on unregister
Rémi Verschelde 2 年之前
父節點
當前提交
a47f9bd53a
共有 1 個文件被更改,包括 5 次插入1 次删除
  1. 5 1
      core/object/class_db.cpp

+ 5 - 1
core/object/class_db.cpp

@@ -1538,7 +1538,11 @@ void ClassDB::register_extension_class(ObjectNativeExtension *p_extension) {
 }
 }
 
 
 void ClassDB::unregister_extension_class(const StringName &p_class) {
 void ClassDB::unregister_extension_class(const StringName &p_class) {
-	ERR_FAIL_COND(!classes.has(p_class));
+	ClassInfo *c = classes.getptr(p_class);
+	ERR_FAIL_COND_MSG(!c, "Class " + p_class + "does not exist");
+	for (KeyValue<StringName, MethodBind *> &F : c->method_map) {
+		memdelete(F.value);
+	}
 	classes.erase(p_class);
 	classes.erase(p_class);
 }
 }