Browse Source

-Made sure that "free" function appears in documentation and code completion, fixes #1664

Juan Linietsky 10 years ago
parent
commit
8fa4f1cf82
3 changed files with 6 additions and 3 deletions
  1. 2 0
      core/object.cpp
  2. 3 2
      core/object_type_db.cpp
  3. 1 1
      core/object_type_db.h

+ 2 - 0
core/object.cpp

@@ -1505,6 +1505,8 @@ void Object::_bind_methods() {
 
 	ObjectTypeDB::bind_method(_MD("is_queued_for_deletion"),&Object::is_queued_for_deletion);
 
+	ObjectTypeDB::add_virtual_method("Object",MethodInfo("free"),false);
+
 	ADD_SIGNAL( MethodInfo("script_changed"));
 
 	BIND_VMETHOD( MethodInfo("_notification",PropertyInfo(Variant::INT,"what")) );

+ 3 - 2
core/object_type_db.cpp

@@ -804,12 +804,13 @@ else goto set_defvals;
 
 }
 
-void ObjectTypeDB::add_virtual_method(const StringName& p_type,const MethodInfo& p_method ) {
+void ObjectTypeDB::add_virtual_method(const StringName& p_type, const MethodInfo& p_method , bool p_virtual) {
 	ERR_FAIL_COND(!types.has(p_type));
 
 #ifdef DEBUG_METHODS_ENABLED
 	MethodInfo mi=p_method;
-	mi.flags|=METHOD_FLAG_VIRTUAL;
+	if (p_virtual)
+		mi.flags|=METHOD_FLAG_VIRTUAL;
 	types[p_type].virtual_methods.push_back(mi);
 
 #endif

+ 1 - 1
core/object_type_db.h

@@ -468,7 +468,7 @@ public:
 	static void get_method_list(StringName p_type,List<MethodInfo> *p_methods,bool p_no_inheritance=false);
 	static MethodBind *get_method(StringName p_type, StringName p_name);
 
-	static void add_virtual_method(const StringName& p_type,const MethodInfo& p_method );
+	static void add_virtual_method(const StringName& p_type,const MethodInfo& p_method,bool p_virtual=true );
 	static void get_virtual_methods(const StringName& p_type,List<MethodInfo> * p_methods,bool p_no_inheritance=false );
 	
 	static void bind_integer_constant(const StringName& p_type, const StringName &p_name, int p_constant);