瀏覽代碼

Merge pull request #64427 from touilleMan/gdextension-skip-undefined-field-in-properties

[GDExtension] Skip unset getter/setter/index fields in class property
Rémi Verschelde 2 年之前
父節點
當前提交
96796c1518
共有 1 個文件被更改,包括 12 次插入3 次删除
  1. 12 3
      core/extension/extension_api_dump.cpp

+ 12 - 3
core/extension/extension_api_dump.cpp

@@ -871,9 +871,18 @@ Dictionary NativeExtensionAPIDump::generate_extension_api() {
 					Dictionary d2;
 					Dictionary d2;
 					d2["type"] = get_property_info_type_name(F);
 					d2["type"] = get_property_info_type_name(F);
 					d2["name"] = String(property_name);
 					d2["name"] = String(property_name);
-					d2["setter"] = ClassDB::get_property_setter(class_name, F.name);
-					d2["getter"] = ClassDB::get_property_getter(class_name, F.name);
-					d2["index"] = ClassDB::get_property_index(class_name, F.name);
+					StringName setter = ClassDB::get_property_setter(class_name, F.name);
+					if (!(setter == "")) {
+						d2["setter"] = setter;
+					}
+					StringName getter = ClassDB::get_property_getter(class_name, F.name);
+					if (!(getter == "")) {
+						d2["getter"] = getter;
+					}
+					int index = ClassDB::get_property_index(class_name, F.name);
+					if (index != -1) {
+						d2["index"] = index;
+					}
 					properties.push_back(d2);
 					properties.push_back(d2);
 				}
 				}