Tweaks after feedback

This commit is contained in:
Ben Rog-Wilhelm 2018-12-08 00:54:12 -08:00
parent f13f2d512f
commit b26487a2b4
4 changed files with 11 additions and 21 deletions

View File

@ -210,9 +210,6 @@ void PropertySelector::_update_search() {
methods.push_back(MethodInfo("*Script Methods"));
Object::cast_to<Script>(obj)->get_script_method_list(&methods);
// TODO: Filter out things unsuitable for explicit calls, like constructors.
// TODO: We should handle script class hierarchies somehow. Right now we don't; it's unclear where this functionality should live.
}
StringName base = base_type;

View File

@ -2479,6 +2479,7 @@ void CSharpScript::get_script_method_list(List<MethodInfo> *p_list) const {
if (!script_class)
return;
// TODO: Filter out things unsuitable for explicit calls, like constructors.
const Vector<GDMonoMethod *> &methods = script_class->get_all_methods();
for (int i = 0; i < methods.size(); ++i) {
p_list->push_back(methods[i]->get_method_info());

View File

@ -139,20 +139,6 @@ void GDMonoClass::fetch_attributes() {
attrs_fetched = true;
}
void GDMonoClass::fetch_method_list() {
if (method_list_fetched)
return;
void *iter = NULL;
MonoMethod *raw_method = NULL;
while ((raw_method = mono_class_get_methods(get_mono_ptr(), &iter)) != NULL) {
method_list.push_back(memnew(GDMonoMethod(mono_method_get_name(raw_method), raw_method)));
}
method_list_fetched = true;
}
void GDMonoClass::fetch_methods_with_godot_api_checks(GDMonoClass *p_native_base) {
CRASH_COND(!CACHED_CLASS(GodotObject)->is_assignable_from(this));
@ -465,8 +451,16 @@ const Vector<GDMonoClass *> &GDMonoClass::get_all_delegates() {
}
const Vector<GDMonoMethod *> &GDMonoClass::get_all_methods() {
if (!method_list_fetched)
fetch_method_list();
if (!method_list_fetched) {
void *iter = NULL;
MonoMethod *raw_method = NULL;
while ((raw_method = mono_class_get_methods(get_mono_ptr(), &iter)) != NULL) {
method_list.push_back(memnew(GDMonoMethod(mono_method_get_name(raw_method), raw_method)));
}
method_list_fetched = true;
}
return method_list;
}

View File

@ -102,8 +102,6 @@ class GDMonoClass {
friend class GDMonoAssembly;
GDMonoClass(const StringName &p_namespace, const StringName &p_name, MonoClass *p_class, GDMonoAssembly *p_assembly);
void fetch_method_list();
public:
static String get_full_name(MonoClass *p_mono_class);
static MonoType *get_mono_type(MonoClass *p_mono_class);