diff options
325 files changed, 1708 insertions, 3499 deletions
diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000000..6e7b1ba39c --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,42 @@ +--- +Checks:          'clang-diagnostic-*,clang-analyzer-*,-*,modernize-use-default-member-init' +WarningsAsErrors: '' +HeaderFilterRegex: '.*' +AnalyzeTemporaryDtors: false +FormatStyle:     none +CheckOptions: +CheckOptions: +  - key:             cert-dcl16-c.NewSuffixes +    value:           'L;LL;LU;LLU' +  - key:             cert-oop54-cpp.WarnOnlyIfThisHasSuspiciousField +    value:           '0' +  - key:             cppcoreguidelines-explicit-virtual-functions.IgnoreDestructors +    value:           '1' +  - key:             cppcoreguidelines-non-private-member-variables-in-classes.IgnoreClassesWithAllMemberVariablesBeingPublic +    value:           '1' +  - key:             google-readability-braces-around-statements.ShortStatementLines +    value:           '1' +  - key:             google-readability-function-size.StatementThreshold +    value:           '800' +  - key:             google-readability-namespace-comments.ShortNamespaceLines +    value:           '10' +  - key:             google-readability-namespace-comments.SpacesBeforeComments +    value:           '2' +  - key:             modernize-loop-convert.MaxCopySize +    value:           '16' +  - key:             modernize-loop-convert.MinConfidence +    value:           reasonable +  - key:             modernize-loop-convert.NamingStyle +    value:           CamelCase +  - key:             modernize-pass-by-value.IncludeStyle +    value:           llvm +  - key:             modernize-replace-auto-ptr.IncludeStyle +    value:           llvm +  - key:             modernize-use-default-member-init.IgnoreMacros +    value:           '1' +  - key:             modernize-use-default-member-init.UseAssignment +    value:           '1' +  - key:             modernize-use-nullptr.NullMacros +    value:           'NULL' +... + diff --git a/core/bind/core_bind.cpp b/core/bind/core_bind.cpp index e2774deb3c..ed0e7b1018 100644 --- a/core/bind/core_bind.cpp +++ b/core/bind/core_bind.cpp @@ -62,6 +62,8 @@ static const unsigned int MONTH_DAYS_TABLE[2][12] = {  	{ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }  }; +////// _ResourceLoader ////// +  _ResourceLoader *_ResourceLoader::singleton = nullptr;  Error _ResourceLoader::load_threaded_request(const String &p_path, const String &p_type_hint, bool p_use_sub_threads) { @@ -150,10 +152,7 @@ void _ResourceLoader::_bind_methods() {  	BIND_ENUM_CONSTANT(THREAD_LOAD_LOADED);  } -_ResourceLoader::_ResourceLoader() { - -	singleton = this; -} +////// _ResourceSaver //////  Error _ResourceSaver::save(const String &p_path, const RES &p_resource, SaverFlags p_flags) {  	ERR_FAIL_COND_V_MSG(p_resource.is_null(), ERR_INVALID_PARAMETER, "Can't save empty resource to path '" + String(p_path) + "'."); @@ -189,10 +188,7 @@ void _ResourceSaver::_bind_methods() {  	BIND_ENUM_CONSTANT(FLAG_REPLACE_SUBRESOURCE_PATHS);  } -_ResourceSaver::_ResourceSaver() { - -	singleton = this; -} +////// _OS //////  PackedStringArray _OS::get_connected_midi_inputs() {  	return OS::get_singleton()->get_connected_midi_inputs(); @@ -319,50 +315,6 @@ bool _OS::has_feature(const String &p_feature) const {  	return OS::get_singleton()->has_feature(p_feature);  } -/* -enum Weekday { -	DAY_SUNDAY, -	DAY_MONDAY, -	DAY_TUESDAY, -	DAY_WEDNESDAY, -	DAY_THURSDAY, -	DAY_FRIDAY, -	DAY_SATURDAY -}; - -enum Month { -	MONTH_JANUARY, -	MONTH_FEBRUARY, -	MONTH_MARCH, -	MONTH_APRIL, -	MONTH_MAY, -	MONTH_JUNE, -	MONTH_JULY, -	MONTH_AUGUST, -	MONTH_SEPTEMBER, -	MONTH_OCTOBER, -	MONTH_NOVEMBER, -	MONTH_DECEMBER -}; -*/ -/* -struct Date { - -	int year; -	Month month; -	int day; -	Weekday weekday; -	bool dst; -}; - -struct Time { - -	int hour; -	int min; -	int sec; -}; -*/ -  uint64_t _OS::get_static_memory_usage() const {  	return OS::get_singleton()->get_static_memory_usage(); @@ -783,6 +735,7 @@ Vector<String> _OS::get_granted_permissions() const {  String _OS::get_unique_id() const {  	return OS::get_singleton()->get_unique_id();  } +  _OS *_OS::singleton = nullptr;  void _OS::_bind_methods() { @@ -839,8 +792,6 @@ void _OS::_bind_methods() {  	ClassDB::bind_method(D_METHOD("is_debug_build"), &_OS::is_debug_build); -	//ClassDB::bind_method(D_METHOD("get_mouse_button_state"),&_OS::get_mouse_button_state); -  	ClassDB::bind_method(D_METHOD("dump_memory_to_file", "file"), &_OS::dump_memory_to_file);  	ClassDB::bind_method(D_METHOD("dump_resources_to_file", "file"), &_OS::dump_resources_to_file);  	ClassDB::bind_method(D_METHOD("print_resources_in_use", "short"), &_OS::print_resources_in_use, DEFVAL(false)); @@ -914,12 +865,7 @@ void _OS::_bind_methods() {  	BIND_ENUM_CONSTANT(SYSTEM_DIR_RINGTONES);  } -_OS::_OS() { - -	singleton = this; -} - -///////////////////// GEOMETRY +////// _Geometry //////  _Geometry *_Geometry::singleton = nullptr; @@ -1296,11 +1242,7 @@ void _Geometry::_bind_methods() {  	BIND_ENUM_CONSTANT(END_ROUND);  } -_Geometry::_Geometry() { -	singleton = this; -} - -///////////////////////// FILE +////// _File //////  Error _File::open_encrypted(const String &p_path, ModeFlags p_mode_flags, const Vector<uint8_t> &p_key) { @@ -1736,19 +1678,12 @@ void _File::_bind_methods() {  	BIND_ENUM_CONSTANT(COMPRESSION_GZIP);  } -_File::_File() { - -	f = nullptr; -	eswap = false; -} -  _File::~_File() { -  	if (f)  		memdelete(f);  } -/////////////////////////////////////////////////////// +////// _Directory //////  Error _Directory::open(const String &p_path) {  	Error err; @@ -1929,16 +1864,16 @@ void _Directory::_bind_methods() {  }  _Directory::_Directory() { -  	d = DirAccess::create(DirAccess::ACCESS_RESOURCES);  }  _Directory::~_Directory() { -  	if (d)  		memdelete(d);  } +////// _Marshalls ////// +  _Marshalls *_Marshalls::singleton = nullptr;  _Marshalls *_Marshalls::get_singleton() { @@ -2046,7 +1981,7 @@ void _Marshalls::_bind_methods() {  	ClassDB::bind_method(D_METHOD("base64_to_utf8", "base64_str"), &_Marshalls::base64_to_utf8);  }; -//////////////// +////// _Semaphore //////  void _Semaphore::wait() { @@ -2070,7 +2005,7 @@ void _Semaphore::_bind_methods() {  	ClassDB::bind_method(D_METHOD("post"), &_Semaphore::post);  } -/////////////// +////// _Mutex //////  void _Mutex::lock() { @@ -2094,7 +2029,7 @@ void _Mutex::_bind_methods() {  	ClassDB::bind_method(D_METHOD("unlock"), &_Mutex::unlock);  } -/////////////// +////// _Thread //////  void _Thread::_start_func(void *ud) { @@ -2204,19 +2139,12 @@ void _Thread::_bind_methods() {  	BIND_ENUM_CONSTANT(PRIORITY_NORMAL);  	BIND_ENUM_CONSTANT(PRIORITY_HIGH);  } -_Thread::_Thread() { - -	active = false; -	thread = nullptr; -	target_instance = nullptr; -}  _Thread::~_Thread() { -  	ERR_FAIL_COND_MSG(active, "Reference to a Thread object was lost while the thread is still running...");  } -///////////////////////////////////// +////// _ClassDB //////  PackedStringArray _ClassDB::get_class_list() const { @@ -2425,11 +2353,7 @@ void _ClassDB::_bind_methods() {  	ClassDB::bind_method(D_METHOD("is_class_enabled", "class"), &_ClassDB::is_class_enabled);  } -_ClassDB::_ClassDB() { -} -_ClassDB::~_ClassDB() { -} -/////////////////////////////// +////// _Engine //////  void _Engine::set_iterations_per_second(int p_ips) { @@ -2588,9 +2512,7 @@ void _Engine::_bind_methods() {  _Engine *_Engine::singleton = nullptr; -_Engine::_Engine() { -	singleton = this; -} +////// _JSON //////  void JSONParseResult::_bind_methods() {  	ClassDB::bind_method(D_METHOD("get_error"), &JSONParseResult::get_error); @@ -2663,7 +2585,3 @@ Ref<JSONParseResult> _JSON::parse(const String &p_json) {  }  _JSON *_JSON::singleton = nullptr; - -_JSON::_JSON() { -	singleton = this; -} diff --git a/core/bind/core_bind.h b/core/bind/core_bind.h index d5f44cdc44..44e573ccbe 100644 --- a/core/bind/core_bind.h +++ b/core/bind/core_bind.h @@ -69,7 +69,7 @@ public:  	bool has_cached(const String &p_path);  	bool exists(const String &p_path, const String &p_type_hint = ""); -	_ResourceLoader(); +	_ResourceLoader() { singleton = this; }  };  VARIANT_ENUM_CAST(_ResourceLoader::ThreadLoadStatus); @@ -98,7 +98,7 @@ public:  	Error save(const String &p_path, const RES &p_resource, SaverFlags p_flags);  	Vector<String> get_recognized_extensions(const RES &p_resource); -	_ResourceSaver(); +	_ResourceSaver() { singleton = this; }  };  VARIANT_ENUM_CAST(_ResourceSaver::SaverFlags); @@ -245,7 +245,7 @@ public:  	static _OS *get_singleton() { return singleton; } -	_OS(); +	_OS() { singleton = this; }  };  VARIANT_ENUM_CAST(_OS::VideoDriver); @@ -327,7 +327,7 @@ public:  	Dictionary make_atlas(const Vector<Size2> &p_rects); -	_Geometry(); +	_Geometry() { singleton = this; }  };  VARIANT_ENUM_CAST(_Geometry::PolyBooleanOperation); @@ -335,10 +335,10 @@ VARIANT_ENUM_CAST(_Geometry::PolyJoinType);  VARIANT_ENUM_CAST(_Geometry::PolyEndType);  class _File : public Reference { -  	GDCLASS(_File, Reference); -	FileAccess *f; -	bool eswap; + +	FileAccess *f = nullptr; +	bool eswap = false;  protected:  	static void _bind_methods(); @@ -429,7 +429,7 @@ public:  	uint64_t get_modified_time(const String &p_file) const; -	_File(); +	_File() {}  	virtual ~_File();  }; @@ -538,10 +538,10 @@ class _Thread : public Reference {  protected:  	Variant ret;  	Variant userdata; -	volatile bool active; -	Object *target_instance; +	volatile bool active = false; +	Object *target_instance = nullptr;  	StringName target_method; -	Thread *thread; +	Thread *thread = nullptr;  	static void _bind_methods();  	static void _start_func(void *ud); @@ -559,7 +559,7 @@ public:  	bool is_active() const;  	Variant wait_to_finish(); -	_Thread(); +	_Thread() {}  	~_Thread();  }; @@ -600,8 +600,8 @@ public:  	bool is_class_enabled(StringName p_class) const; -	_ClassDB(); -	~_ClassDB(); +	_ClassDB() {} +	~_ClassDB() {}  };  class _Engine : public Object { @@ -649,7 +649,7 @@ public:  	void set_editor_hint(bool p_enabled);  	bool is_editor_hint() const; -	_Engine(); +	_Engine() { singleton = this; }  };  class _JSON; @@ -661,7 +661,7 @@ class JSONParseResult : public Reference {  	Error error;  	String error_string; -	int error_line; +	int error_line = -1;  	Variant result; @@ -681,8 +681,7 @@ public:  	void set_result(const Variant &p_result);  	Variant get_result() const; -	JSONParseResult() : -			error_line(-1) {} +	JSONParseResult() {}  };  class _JSON : public Object { @@ -698,7 +697,7 @@ public:  	String print(const Variant &p_value, const String &p_indent = "", bool p_sort_keys = false);  	Ref<JSONParseResult> parse(const String &p_json); -	_JSON(); +	_JSON() { singleton = this; }  };  #endif // CORE_BIND_H diff --git a/core/callable.cpp b/core/callable.cpp index 6a5dc151e5..447cf78bea 100644 --- a/core/callable.cpp +++ b/core/callable.cpp @@ -29,6 +29,7 @@  /*************************************************************************/  #include "callable.h" +  #include "core/script_language.h"  #include "message_queue.h"  #include "object.h" @@ -255,12 +256,7 @@ Callable::~Callable() {  	}  } -Callable::Callable() { -	object = 0; -} -  CallableCustom::CallableCustom() { -	referenced = false;  	ref_count.init();  } @@ -349,6 +345,7 @@ Array Signal::get_connections() const {  	}  	return arr;  } +  Signal::Signal(const Object *p_object, const StringName &p_name) {  	ERR_FAIL_COND_MSG(p_object == nullptr, "Object argument to Signal constructor must be non-null"); @@ -356,10 +353,9 @@ Signal::Signal(const Object *p_object, const StringName &p_name) {  	object = p_object->get_instance_id();  	name = p_name;  } +  Signal::Signal(ObjectID p_object, const StringName &p_name) {  	object = p_object;  	name = p_name;  } -Signal::Signal() { -} diff --git a/core/callable.h b/core/callable.h index 7fa024dccd..5fa1ebf1d1 100644 --- a/core/callable.h +++ b/core/callable.h @@ -49,7 +49,7 @@ class Callable {  	//needs to be max 16 bytes in 64 bits  	StringName method;  	union { -		uint64_t object; +		uint64_t object = 0;  		CallableCustom *custom;  	}; @@ -100,14 +100,14 @@ public:  	Callable(ObjectID p_object, const StringName &p_method);  	Callable(CallableCustom *p_custom);  	Callable(const Callable &p_callable); -	Callable(); +	Callable() {}  	~Callable();  };  class CallableCustom {  	friend class Callable;  	SafeRefCount ref_count; -	bool referenced; +	bool referenced = false;  public:  	typedef bool (*CompareEqualFunc)(const CallableCustom *p_a, const CallableCustom *p_b); @@ -156,7 +156,7 @@ public:  	Array get_connections() const;  	Signal(const Object *p_object, const StringName &p_name);  	Signal(ObjectID p_object, const StringName &p_name); -	Signal(); +	Signal() {}  };  #endif // CALLABLE_H diff --git a/core/class_db.cpp b/core/class_db.cpp index ee93ac73ae..dd9fba16d3 100644 --- a/core/class_db.cpp +++ b/core/class_db.cpp @@ -258,19 +258,6 @@ HashMap<StringName, ClassDB::ClassInfo> ClassDB::classes;  HashMap<StringName, StringName> ClassDB::resource_base_extensions;  HashMap<StringName, StringName> ClassDB::compat_classes; -ClassDB::ClassInfo::ClassInfo() { - -	api = API_NONE; -	class_ptr = nullptr; -	creation_func = nullptr; -	inherits_ptr = nullptr; -	disabled = false; -	exposed = false; -} - -ClassDB::ClassInfo::~ClassInfo() { -} -  bool ClassDB::is_parent_class(const StringName &p_class, const StringName &p_inherits) {  	OBJTYPE_RLOCK; diff --git a/core/class_db.h b/core/class_db.h index f760aa1738..32d2148048 100644 --- a/core/class_db.h +++ b/core/class_db.h @@ -114,9 +114,10 @@ public:  	struct ClassInfo { -		APIType api; -		ClassInfo *inherits_ptr; -		void *class_ptr; +		APIType api = API_NONE; +		ClassInfo *inherits_ptr = nullptr; +		void *class_ptr = nullptr; +  		HashMap<StringName, MethodBind *> method_map;  		HashMap<StringName, int> constant_map;  		HashMap<StringName, List<StringName>> enum_map; @@ -133,11 +134,12 @@ public:  		StringName inherits;  		StringName name; -		bool disabled; -		bool exposed; -		Object *(*creation_func)(); -		ClassInfo(); -		~ClassInfo(); +		bool disabled = false; +		bool exposed = false; +		Object *(*creation_func)() = nullptr; + +		ClassInfo() {} +		~ClassInfo() {}  	};  	template <class T> diff --git a/core/color.h b/core/color.h index 8b689fdde1..066a3f6696 100644 --- a/core/color.h +++ b/core/color.h @@ -44,7 +44,7 @@ struct Color {  			float b;  			float a;  		}; -		float components[4]; +		float components[4] = { 0, 0, 0, 1.0 };  	};  	bool operator==(const Color &p_color) const { return (r == p_color.r && g == p_color.g && b == p_color.b && a == p_color.a); } @@ -204,15 +204,7 @@ struct Color {  	_FORCE_INLINE_ bool operator<(const Color &p_color) const; //used in set keys  	operator String() const; -	/** -	 * No construct parameters, r=0, g=0, b=0. a=1 -	 */ -	_FORCE_INLINE_ Color() { -		r = 0; -		g = 0; -		b = 0; -		a = 1.0; -	} +	_FORCE_INLINE_ Color() {}  	/**  	 * RGB / RGBA construct parameters. Alpha is optional, but defaults to 1.0 diff --git a/core/command_queue_mt.cpp b/core/command_queue_mt.cpp index 3ce769c72c..60ab5d133b 100644 --- a/core/command_queue_mt.cpp +++ b/core/command_queue_mt.cpp @@ -100,24 +100,11 @@ tryagain:  }  CommandQueueMT::CommandQueueMT(bool p_sync) { - -	read_ptr = 0; -	write_ptr = 0; -	dealloc_ptr = 0; -	command_mem = (uint8_t *)memalloc(COMMAND_MEM_SIZE); - -	for (int i = 0; i < SYNC_SEMAPHORES; i++) { - -		sync_sems[i].in_use = false; -	}  	if (p_sync)  		sync = memnew(Semaphore); -	else -		sync = nullptr;  }  CommandQueueMT::~CommandQueueMT() { -  	if (sync)  		memdelete(sync);  	memfree(command_mem); diff --git a/core/command_queue_mt.h b/core/command_queue_mt.h index 2f2b3b783c..af8bbb24c6 100644 --- a/core/command_queue_mt.h +++ b/core/command_queue_mt.h @@ -301,14 +301,14 @@ class CommandQueueMT {  	struct SyncSemaphore {  		Semaphore sem; -		bool in_use; +		bool in_use = false;  	};  	struct CommandBase {  		virtual void call() = 0; -		virtual void post(){}; -		virtual ~CommandBase(){}; +		virtual void post() {} +		virtual ~CommandBase() {}  	};  	struct SyncCommand : public CommandBase { @@ -339,13 +339,13 @@ class CommandQueueMT {  		SYNC_SEMAPHORES = 8  	}; -	uint8_t *command_mem; -	uint32_t read_ptr; -	uint32_t write_ptr; -	uint32_t dealloc_ptr; +	uint8_t *command_mem = (uint8_t *)memalloc(COMMAND_MEM_SIZE); +	uint32_t read_ptr = 0; +	uint32_t write_ptr = 0; +	uint32_t dealloc_ptr = 0;  	SyncSemaphore sync_sems[SYNC_SEMAPHORES];  	Mutex mutex; -	Semaphore *sync; +	Semaphore *sync = nullptr;  	template <class T>  	T *allocate() { diff --git a/core/compressed_translation.cpp b/core/compressed_translation.cpp index 0225524bc8..9e6ba6cde2 100644 --- a/core/compressed_translation.cpp +++ b/core/compressed_translation.cpp @@ -288,6 +288,3 @@ void PHashTranslation::_bind_methods() {  	ClassDB::bind_method(D_METHOD("generate", "from"), &PHashTranslation::generate);  } - -PHashTranslation::PHashTranslation() { -} diff --git a/core/compressed_translation.h b/core/compressed_translation.h index d599240dfe..fff4350caa 100644 --- a/core/compressed_translation.h +++ b/core/compressed_translation.h @@ -86,7 +86,7 @@ public:  	virtual StringName get_message(const StringName &p_src_text) const; //overridable for other implementations  	void generate(const Ref<Translation> &p_from); -	PHashTranslation(); +	PHashTranslation() {}  };  #endif // COMPRESSED_TRANSLATION_H diff --git a/core/cowdata.h b/core/cowdata.h index 975a572906..e9cfa2925a 100644 --- a/core/cowdata.h +++ b/core/cowdata.h @@ -54,7 +54,7 @@ class CowData {  	friend class VMap;  private: -	mutable T *_ptr; +	mutable T *_ptr = nullptr;  	// internal helpers @@ -183,7 +183,7 @@ public:  	int find(const T &p_val, int p_from = 0) const; -	_FORCE_INLINE_ CowData(); +	_FORCE_INLINE_ CowData() {}  	_FORCE_INLINE_ ~CowData();  	_FORCE_INLINE_ CowData(CowData<T> &p_from) { _ref(p_from); };  }; @@ -367,12 +367,6 @@ void CowData<T>::_ref(const CowData &p_from) {  }  template <class T> -CowData<T>::CowData() { - -	_ptr = nullptr; -} - -template <class T>  CowData<T>::~CowData() {  	_unref(_ptr); diff --git a/core/crypto/crypto.cpp b/core/crypto/crypto.cpp index 233f62bd15..585731ac9f 100644 --- a/core/crypto/crypto.cpp +++ b/core/crypto/crypto.cpp @@ -94,9 +94,6 @@ Ref<X509Certificate> Crypto::generate_self_signed_certificate(Ref<CryptoKey> p_k  	ERR_FAIL_V_MSG(nullptr, "generate_self_signed_certificate is not available when mbedtls module is disabled.");  } -Crypto::Crypto() { -} -  /// Resource loader/saver  RES ResourceFormatLoaderCrypto::load(const String &p_path, const String &p_original_path, Error *r_error, bool p_use_sub_threads, float *r_progress, bool p_no_cache) { diff --git a/core/crypto/crypto.h b/core/crypto/crypto.h index d9becab958..cf21648a4a 100644 --- a/core/crypto/crypto.h +++ b/core/crypto/crypto.h @@ -31,11 +31,10 @@  #ifndef CRYPTO_H  #define CRYPTO_H -#include "core/reference.h" -#include "core/resource.h" -  #include "core/io/resource_loader.h"  #include "core/io/resource_saver.h" +#include "core/reference.h" +#include "core/resource.h"  class CryptoKey : public Resource {  	GDCLASS(CryptoKey, Resource); @@ -80,7 +79,7 @@ public:  	virtual Ref<CryptoKey> generate_rsa(int p_bytes);  	virtual Ref<X509Certificate> generate_self_signed_certificate(Ref<CryptoKey> p_key, String p_issuer_name, String p_not_before, String p_not_after); -	Crypto(); +	Crypto() {}  };  class ResourceFormatLoaderCrypto : public ResourceFormatLoader { diff --git a/core/crypto/hashing_context.cpp b/core/crypto/hashing_context.cpp index af43bc9bad..0b21dead74 100644 --- a/core/crypto/hashing_context.cpp +++ b/core/crypto/hashing_context.cpp @@ -128,10 +128,6 @@ void HashingContext::_bind_methods() {  	BIND_ENUM_CONSTANT(HASH_SHA256);  } -HashingContext::HashingContext() { -	ctx = nullptr; -} -  HashingContext::~HashingContext() {  	if (ctx != nullptr)  		_delete_ctx(); diff --git a/core/crypto/hashing_context.h b/core/crypto/hashing_context.h index 230ba7ee85..f9454fa891 100644 --- a/core/crypto/hashing_context.h +++ b/core/crypto/hashing_context.h @@ -44,7 +44,7 @@ public:  	};  private: -	void *ctx; +	void *ctx = nullptr;  	HashType type;  protected: @@ -57,7 +57,7 @@ public:  	Error update(PackedByteArray p_chunk);  	PackedByteArray finish(); -	HashingContext(); +	HashingContext() {}  	~HashingContext();  }; diff --git a/core/debugger/debugger_marshalls.h b/core/debugger/debugger_marshalls.h index 04229c0afc..9ba316d997 100644 --- a/core/debugger/debugger_marshalls.h +++ b/core/debugger/debugger_marshalls.h @@ -42,11 +42,8 @@ struct DebuggerMarshalls {  		String format;  		String type;  		RID id; -		int vram; +		int vram = 0;  		bool operator<(const ResourceInfo &p_img) const { return vram == p_img.vram ? id < p_img.id : vram > p_img.vram; } -		ResourceInfo() { -			vram = 0; -		}  	};  	struct ResourceUsage { @@ -119,10 +116,7 @@ struct DebuggerMarshalls {  	struct ScriptStackVariable {  		String name;  		Variant value; -		int type; -		ScriptStackVariable() { -			type = -1; -		} +		int type = -1;  		Array serialize(int max_size = 1 << 20); // 1 MiB default.  		bool deserialize(const Array &p_arr); @@ -137,27 +131,18 @@ struct DebuggerMarshalls {  	};  	struct OutputError { -		int hr; -		int min; -		int sec; -		int msec; +		int hr = -1; +		int min = -1; +		int sec = -1; +		int msec = -1;  		String source_file;  		String source_func; -		int source_line; +		int source_line = -1;  		String error;  		String error_descr; -		bool warning; +		bool warning = false;  		Vector<ScriptLanguage::StackInfo> callstack; -		OutputError() { -			hr = -1; -			min = -1; -			sec = -1; -			msec = -1; -			source_line = -1; -			warning = false; -		} -  		Array serialize();  		bool deserialize(const Array &p_arr);  	}; diff --git a/core/engine.cpp b/core/engine.cpp index 5361e09a8a..86ce0395b9 100644 --- a/core/engine.cpp +++ b/core/engine.cpp @@ -217,23 +217,7 @@ Engine *Engine::get_singleton() {  bool Engine::is_abort_on_gpu_errors_enabled() const {  	return abort_on_gpu_errors;  } -Engine::Engine() { +Engine::Engine() {  	singleton = this; -	frames_drawn = 0; -	ips = 60; -	physics_jitter_fix = 0.5; -	_physics_interpolation_fraction = 0.0f; -	_frame_delay = 0; -	_fps = 1; -	_target_fps = 0; -	_time_scale = 1.0; -	_pixel_snap = false; -	_physics_frames = 0; -	_idle_frames = 0; -	_in_physics = false; -	_frame_ticks = 0; -	_frame_step = 0; -	editor_hint = false; -	abort_on_gpu_errors = false;  } diff --git a/core/engine.h b/core/engine.h index 8512779d4c..aa28b35814 100644 --- a/core/engine.h +++ b/core/engine.h @@ -51,28 +51,28 @@ public:  private:  	friend class Main; -	uint64_t frames_drawn; -	uint32_t _frame_delay; -	uint64_t _frame_ticks; -	float _frame_step; - -	int ips; -	float physics_jitter_fix; -	float _fps; -	int _target_fps; -	float _time_scale; -	bool _pixel_snap; -	uint64_t _physics_frames; -	float _physics_interpolation_fraction; -	bool abort_on_gpu_errors; - -	uint64_t _idle_frames; -	bool _in_physics; +	uint64_t frames_drawn = 0; +	uint32_t _frame_delay = 0; +	uint64_t _frame_ticks = 0; +	float _frame_step = 0; + +	int ips = 60; +	float physics_jitter_fix = 0.5; +	float _fps = 1; +	int _target_fps = 0; +	float _time_scale = 1.0; +	bool _pixel_snap = false; +	uint64_t _physics_frames = 0; +	float _physics_interpolation_fraction = 0.0f; +	bool abort_on_gpu_errors = false; + +	uint64_t _idle_frames = 0; +	bool _in_physics = false;  	List<Singleton> singletons;  	Map<StringName, Object *> singleton_ptrs; -	bool editor_hint; +	bool editor_hint = false;  	static Engine *singleton; diff --git a/core/error_macros.h b/core/error_macros.h index 83f92129a5..eb2cc5215d 100644 --- a/core/error_macros.h +++ b/core/error_macros.h @@ -48,16 +48,12 @@ typedef void (*ErrorHandlerFunc)(void *, const char *, const char *, int p_line,  struct ErrorHandlerList { -	ErrorHandlerFunc errfunc; -	void *userdata; +	ErrorHandlerFunc errfunc = nullptr; +	void *userdata = nullptr; -	ErrorHandlerList *next; +	ErrorHandlerList *next = nullptr; -	ErrorHandlerList() { -		errfunc = 0; -		next = 0; -		userdata = 0; -	} +	ErrorHandlerList() {}  };  void add_error_handler(ErrorHandlerList *p_handler); diff --git a/core/func_ref.cpp b/core/func_ref.cpp index 338c17946b..ad29f4488d 100644 --- a/core/func_ref.cpp +++ b/core/func_ref.cpp @@ -94,6 +94,3 @@ void FuncRef::_bind_methods() {  	ClassDB::bind_method(D_METHOD("set_function", "name"), &FuncRef::set_function);  	ClassDB::bind_method(D_METHOD("is_valid"), &FuncRef::is_valid);  } - -FuncRef::FuncRef() { -} diff --git a/core/func_ref.h b/core/func_ref.h index 8cb3be6e61..07b361db2d 100644 --- a/core/func_ref.h +++ b/core/func_ref.h @@ -48,7 +48,8 @@ public:  	void set_instance(Object *p_obj);  	void set_function(const StringName &p_func);  	bool is_valid() const; -	FuncRef(); + +	FuncRef() {}  };  #endif // FUNC_REF_H diff --git a/core/hash_map.h b/core/hash_map.h index f27a86cc02..4a3bee04c5 100644 --- a/core/hash_map.h +++ b/core/hash_map.h @@ -75,8 +75,8 @@ public:  		friend class HashMap;  		uint32_t hash; -		Element *next; -		Element() { next = 0; } +		Element *next = nullptr; +		Element() {}  		Pair pair;  	public: @@ -94,9 +94,9 @@ public:  	};  private: -	Element **hash_table; -	uint8_t hash_table_power; -	uint32_t elements; +	Element **hash_table = nullptr; +	uint8_t hash_table_power = 0; +	uint32_t elements = 0;  	void make_hash_table() { @@ -551,12 +551,6 @@ public:  		copy_from(p_table);  	} -	HashMap() { -		hash_table = nullptr; -		elements = 0; -		hash_table_power = 0; -	} -  	void get_key_value_ptr_array(const Pair **p_pairs) const {  		if (unlikely(!hash_table))  			return; @@ -584,17 +578,13 @@ public:  		}  	} -	HashMap(const HashMap &p_table) { - -		hash_table = nullptr; -		elements = 0; -		hash_table_power = 0; +	HashMap() {} +	HashMap(const HashMap &p_table) {  		copy_from(p_table);  	}  	~HashMap() { -  		clear();  	}  }; diff --git a/core/image.cpp b/core/image.cpp index ff8acc54af..277f6e9bf0 100644 --- a/core/image.cpp +++ b/core/image.cpp @@ -3671,14 +3671,3 @@ Ref<Resource> Image::duplicate(bool p_subresources) const {  void Image::set_as_black() {  	zeromem(data.ptrw(), data.size());  } - -Image::Image() { - -	width = 0; -	height = 0; -	mipmaps = false; -	format = FORMAT_L8; -} - -Image::~Image() { -} diff --git a/core/image.h b/core/image.h index 07b4f49751..dbdfaa917b 100644 --- a/core/image.h +++ b/core/image.h @@ -33,7 +33,6 @@  #include "core/color.h"  #include "core/math/rect2.h" -  #include "core/resource.h"  /** @@ -172,10 +171,11 @@ private:  		create(p_width, p_height, p_use_mipmaps, p_format, p_data);  	} -	Format format; +	Format format = FORMAT_L8;  	Vector<uint8_t> data; -	int width, height; -	bool mipmaps; +	int width = 0; +	int height = 0; +	bool mipmaps = false;  	void _copy_internals_from(const Image &p_image) {  		format = p_image.format; @@ -286,7 +286,7 @@ public:  	/**  	 * create an empty image  	 */ -	Image(); +	Image() {}  	/**  	 * create an empty image of a specific size and format  	 */ @@ -296,6 +296,8 @@ public:  	 */  	Image(int p_width, int p_height, bool p_mipmaps, Format p_format, const Vector<uint8_t> &p_data); +	~Image() {} +  	enum AlphaMode {  		ALPHA_NONE,  		ALPHA_BIT, @@ -386,8 +388,6 @@ public:  		mipmaps = p_image->mipmaps;  		data = p_image->data;  	} - -	~Image();  };  VARIANT_ENUM_CAST(Image::Format) diff --git a/core/input/input.cpp b/core/input/input.cpp index 91ff676211..38a71994d8 100644 --- a/core/input/input.cpp +++ b/core/input/input.cpp @@ -1433,16 +1433,6 @@ int Input::get_joy_axis_index_from_string(String p_axis) {  Input::Input() {  	singleton = this; -	use_accumulated_input = true; -	mouse_button_mask = 0; -	mouse_window = 0; -	emulate_touch_from_mouse = false; -	emulate_mouse_from_touch = false; -	mouse_from_touch_index = -1; -	event_dispatch_function = nullptr; -	default_shape = CURSOR_ARROW; - -	fallback_mapping = -1;  	// Parse default mappings.  	{ diff --git a/core/input/input.h b/core/input/input.h index 9accf14a4f..f3150a8127 100644 --- a/core/input/input.h +++ b/core/input/input.h @@ -36,7 +36,6 @@  #include "core/os/thread_safe.h"  class Input : public Object { -  	GDCLASS(Input, Object);  	_THREAD_SAFE_CLASS_ @@ -100,7 +99,7 @@ public:  	typedef void (*EventDispatchFunc)(const Ref<InputEvent> &p_event);  private: -	int mouse_button_mask; +	int mouse_button_mask = 0;  	Set<int> keys_pressed;  	Set<int> joy_buttons_pressed; @@ -111,7 +110,7 @@ private:  	Vector3 magnetometer;  	Vector3 gyroscope;  	Vector2 mouse_pos; -	int64_t mouse_window; +	int64_t mouse_window = 0;  	struct Action {  		uint64_t physics_frame; @@ -122,10 +121,11 @@ private:  	Map<StringName, Action> action_state; -	bool emulate_touch_from_mouse; -	bool emulate_mouse_from_touch; +	bool emulate_touch_from_mouse = false; +	bool emulate_mouse_from_touch = false; +	bool use_accumulated_input = false; -	int mouse_from_touch_index; +	int mouse_from_touch_index = -1;  	struct SpeedTrack { @@ -144,35 +144,21 @@ private:  	struct Joypad {  		StringName name;  		StringName uid; -		bool connected; -		bool last_buttons[JOY_BUTTON_MAX]; -		float last_axis[JOY_AXIS_MAX]; -		float filter; -		int last_hat; -		int mapping; -		int hat_current; - -		Joypad() { -			for (int i = 0; i < JOY_AXIS_MAX; i++) { -				last_axis[i] = 0.0f; -			} -			for (int i = 0; i < JOY_BUTTON_MAX; i++) { -				last_buttons[i] = false; -			} -			connected = false; -			last_hat = HAT_MASK_CENTER; -			filter = 0.01f; -			mapping = -1; -			hat_current = 0; -		} +		bool connected = false; +		bool last_buttons[JOY_BUTTON_MAX] = { false }; +		float last_axis[JOY_AXIS_MAX] = { 0.0f }; +		float filter = 0.01f; +		int last_hat = HAT_MASK_CENTER; +		int mapping = -1; +		int hat_current = 0;  	};  	SpeedTrack mouse_speed_track;  	Map<int, SpeedTrack> touch_speed_track;  	Map<int, Joypad> joy_names; -	int fallback_mapping; +	int fallback_mapping = -1; -	CursorShape default_shape; +	CursorShape default_shape = CURSOR_ARROW;  	enum JoyType {  		TYPE_BUTTON, @@ -243,7 +229,7 @@ private:  	void _parse_input_event_impl(const Ref<InputEvent> &p_event, bool p_is_emulated);  	List<Ref<InputEvent>> accumulated_events; -	bool use_accumulated_input; +  	friend class DisplayServer;  	static void (*set_mouse_mode_func)(MouseMode); @@ -253,7 +239,7 @@ private:  	static CursorShape (*get_current_cursor_shape_func)();  	static void (*set_custom_mouse_cursor_func)(const RES &, CursorShape, const Vector2 &); -	EventDispatchFunc event_dispatch_function; +	EventDispatchFunc event_dispatch_function = nullptr;  protected:  	struct VibrationInfo { diff --git a/core/input/input_event.cpp b/core/input/input_event.cpp index 4b8c104f39..9d3f8f9424 100644 --- a/core/input/input_event.cpp +++ b/core/input/input_event.cpp @@ -132,11 +132,7 @@ void InputEvent::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::INT, "device"), "set_device", "get_device");  } -InputEvent::InputEvent() { - -	device = 0; -} -//////////////// +///////////////////////////////////  void InputEventFromWindow::_bind_methods() { @@ -152,11 +148,7 @@ int64_t InputEventFromWindow::get_window_id() const {  	return window_id;  } -InputEventFromWindow::InputEventFromWindow() { -	window_id = 0; -} - -////////////////// +///////////////////////////////////  void InputEventWithModifiers::set_shift(bool p_enabled) { @@ -236,15 +228,7 @@ void InputEventWithModifiers::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::BOOL, "command"), "set_command", "get_command");  } -InputEventWithModifiers::InputEventWithModifiers() { - -	alt = false; -	shift = false; -	control = false; -	meta = false; -} - -////////////////////////////////// +///////////////////////////////////  void InputEventKey::set_pressed(bool p_pressed) { @@ -411,16 +395,7 @@ void InputEventKey::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::BOOL, "echo"), "set_echo", "is_echo");  } -InputEventKey::InputEventKey() { - -	pressed = false; -	keycode = 0; -	physical_keycode = 0; -	unicode = 0; ///unicode -	echo = false; -} - -//////////////////////////////////////// +///////////////////////////////////  void InputEventMouse::set_button_mask(int p_mask) { @@ -465,12 +440,7 @@ void InputEventMouse::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "global_position"), "set_global_position", "get_global_position");  } -InputEventMouse::InputEventMouse() { - -	button_mask = 0; -} - -/////////////////////////////////////// +///////////////////////////////////  void InputEventMouseButton::set_factor(float p_factor) { @@ -608,15 +578,7 @@ void InputEventMouseButton::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::BOOL, "doubleclick"), "set_doubleclick", "is_doubleclick");  } -InputEventMouseButton::InputEventMouseButton() { - -	factor = 1; -	button_index = 0; -	pressed = false; -	doubleclick = false; -} - -//////////////////////////////////////////// +///////////////////////////////////  void InputEventMouseMotion::set_tilt(const Vector2 &p_tilt) { @@ -773,12 +735,7 @@ void InputEventMouseMotion::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "speed"), "set_speed", "get_speed");  } -InputEventMouseMotion::InputEventMouseMotion() { - -	pressure = 0; -} - -//////////////////////////////////////// +///////////////////////////////////  void InputEventJoypadMotion::set_axis(int p_axis) { @@ -849,12 +806,7 @@ void InputEventJoypadMotion::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "axis_value"), "set_axis_value", "get_axis_value");  } -InputEventJoypadMotion::InputEventJoypadMotion() { - -	axis = 0; -	axis_value = 0; -} -///////////////////////////////// +///////////////////////////////////  void InputEventJoypadButton::set_button_index(int p_index) { @@ -931,14 +883,7 @@ void InputEventJoypadButton::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::BOOL, "pressed"), "set_pressed", "is_pressed");  } -InputEventJoypadButton::InputEventJoypadButton() { - -	button_index = 0; -	pressure = 0; -	pressed = false; -} - -////////////////////////////////////////////// +///////////////////////////////////  void InputEventScreenTouch::set_index(int p_index) { @@ -1001,13 +946,7 @@ void InputEventScreenTouch::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::BOOL, "pressed"), "set_pressed", "is_pressed");  } -InputEventScreenTouch::InputEventScreenTouch() { - -	index = 0; -	pressed = false; -} - -///////////////////////////// +///////////////////////////////////  void InputEventScreenDrag::set_index(int p_index) { @@ -1088,11 +1027,7 @@ void InputEventScreenDrag::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "speed"), "set_speed", "get_speed");  } -InputEventScreenDrag::InputEventScreenDrag() { - -	index = 0; -} -///////////////////////////// +///////////////////////////////////  void InputEventAction::set_action(const StringName &p_action) { @@ -1171,11 +1106,7 @@ void InputEventAction::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "strength", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_strength", "get_strength");  } -InputEventAction::InputEventAction() { -	pressed = false; -	strength = 1.0f; -} -///////////////////////////// +///////////////////////////////////  void InputEventGesture::set_position(const Vector2 &p_pos) { @@ -1194,7 +1125,8 @@ Vector2 InputEventGesture::get_position() const {  	return pos;  } -///////////////////////////// + +///////////////////////////////////  void InputEventMagnifyGesture::set_factor(real_t p_factor) { @@ -1235,11 +1167,7 @@ void InputEventMagnifyGesture::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "factor"), "set_factor", "get_factor");  } -InputEventMagnifyGesture::InputEventMagnifyGesture() { - -	factor = 1.0; -} -///////////////////////////// +///////////////////////////////////  void InputEventPanGesture::set_delta(const Vector2 &p_delta) { @@ -1279,11 +1207,7 @@ void InputEventPanGesture::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "delta"), "set_delta", "get_delta");  } -InputEventPanGesture::InputEventPanGesture() { - -	delta = Vector2(0, 0); -} -///////////////////////////// +///////////////////////////////////  void InputEventMIDI::set_channel(const int p_channel) { @@ -1390,15 +1314,3 @@ void InputEventMIDI::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::INT, "controller_number"), "set_controller_number", "get_controller_number");  	ADD_PROPERTY(PropertyInfo(Variant::INT, "controller_value"), "set_controller_value", "get_controller_value");  } - -InputEventMIDI::InputEventMIDI() { - -	channel = 0; -	message = 0; -	pitch = 0; -	velocity = 0; -	instrument = 0; -	pressure = 0; -	controller_number = 0; -	controller_value = 0; -} diff --git a/core/input/input_event.h b/core/input/input_event.h index 99ea2efee9..18792076f5 100644 --- a/core/input/input_event.h +++ b/core/input/input_event.h @@ -157,7 +157,7 @@ enum MidiMessageList {  class InputEvent : public Resource {  	GDCLASS(InputEvent, Resource); -	int device; +	int device = 0;  protected:  	static void _bind_methods(); @@ -177,7 +177,6 @@ public:  	// To be removed someday, since they do not make sense for all events  	virtual bool is_pressed() const;  	virtual bool is_echo() const; -	// ...-.  	virtual String as_text() const; @@ -188,14 +187,15 @@ public:  	virtual bool is_action_type() const;  	virtual bool accumulate(const Ref<InputEvent> &p_event) { return false; } -	InputEvent(); + +	InputEvent() {}  };  class InputEventFromWindow : public InputEvent {  	GDCLASS(InputEventFromWindow, InputEvent); -	int64_t window_id; +	int64_t window_id = 0;  protected:  	static void _bind_methods(); @@ -204,28 +204,27 @@ public:  	void set_window_id(int64_t p_id);  	int64_t get_window_id() const; -	InputEventFromWindow(); +	InputEventFromWindow() {}  };  class InputEventWithModifiers : public InputEventFromWindow {  	GDCLASS(InputEventWithModifiers, InputEventFromWindow); -	bool shift; -	bool alt; +	bool shift = false; +	bool alt = false;  #ifdef APPLE_STYLE_KEYS  	union {  		bool command; -		bool meta; //< windows/mac key +		bool meta = false; //< windows/mac key  	}; -	bool control; +	bool control = false;  #else  	union {  		bool command; //< windows/mac key -		bool control; +		bool control = false;  	}; -	bool meta; //< windows/mac key - +	bool meta = false; //< windows/mac key  #endif  protected: @@ -249,20 +248,20 @@ public:  	void set_modifiers_from_event(const InputEventWithModifiers *event); -	InputEventWithModifiers(); +	InputEventWithModifiers() {}  };  class InputEventKey : public InputEventWithModifiers {  	GDCLASS(InputEventKey, InputEventWithModifiers); -	bool pressed; /// otherwise release +	bool pressed = false; /// otherwise release -	uint32_t keycode; ///< check keyboard.h , KeyCode enum, without modifier masks -	uint32_t physical_keycode; -	uint32_t unicode; ///unicode +	uint32_t keycode = 0; ///< check keyboard.h , KeyCode enum, without modifier masks +	uint32_t physical_keycode = 0; +	uint32_t unicode = 0; ///unicode -	bool echo; /// true if this is an echo key +	bool echo = false; /// true if this is an echo key  protected:  	static void _bind_methods(); @@ -293,14 +292,14 @@ public:  	virtual String as_text() const; -	InputEventKey(); +	InputEventKey() {}  };  class InputEventMouse : public InputEventWithModifiers {  	GDCLASS(InputEventMouse, InputEventWithModifiers); -	int button_mask; +	int button_mask = 0;  	Vector2 pos;  	Vector2 global_pos; @@ -318,17 +317,17 @@ public:  	void set_global_position(const Vector2 &p_global_pos);  	Vector2 get_global_position() const; -	InputEventMouse(); +	InputEventMouse() {}  };  class InputEventMouseButton : public InputEventMouse {  	GDCLASS(InputEventMouseButton, InputEventMouse); -	float factor; -	int button_index; -	bool pressed; //otherwise released -	bool doubleclick; //last even less than doubleclick time +	float factor = 1; +	int button_index = 0; +	bool pressed = false; //otherwise released +	bool doubleclick = false; //last even less than doubleclick time  protected:  	static void _bind_methods(); @@ -352,7 +351,7 @@ public:  	virtual bool is_action_type() const { return true; }  	virtual String as_text() const; -	InputEventMouseButton(); +	InputEventMouseButton() {}  };  class InputEventMouseMotion : public InputEventMouse { @@ -360,7 +359,7 @@ class InputEventMouseMotion : public InputEventMouse {  	GDCLASS(InputEventMouseMotion, InputEventMouse);  	Vector2 tilt; -	float pressure; +	float pressure = 0;  	Vector2 relative;  	Vector2 speed; @@ -385,14 +384,14 @@ public:  	virtual bool accumulate(const Ref<InputEvent> &p_event); -	InputEventMouseMotion(); +	InputEventMouseMotion() {}  };  class InputEventJoypadMotion : public InputEvent {  	GDCLASS(InputEventJoypadMotion, InputEvent); -	int axis; ///< Joypad axis -	float axis_value; ///< -1 to 1 +	int axis = 0; ///< Joypad axis +	float axis_value = 0; ///< -1 to 1  protected:  	static void _bind_methods(); @@ -411,15 +410,15 @@ public:  	virtual bool is_action_type() const { return true; }  	virtual String as_text() const; -	InputEventJoypadMotion(); +	InputEventJoypadMotion() {}  };  class InputEventJoypadButton : public InputEvent {  	GDCLASS(InputEventJoypadButton, InputEvent); -	int button_index; -	bool pressed; -	float pressure; //0 to 1 +	int button_index = 0; +	bool pressed = false; +	float pressure = 0; //0 to 1  protected:  	static void _bind_methods(); @@ -439,14 +438,14 @@ public:  	virtual bool is_action_type() const { return true; }  	virtual String as_text() const; -	InputEventJoypadButton(); +	InputEventJoypadButton() {}  };  class InputEventScreenTouch : public InputEventFromWindow {  	GDCLASS(InputEventScreenTouch, InputEventFromWindow); -	int index; +	int index = 0;  	Vector2 pos; -	bool pressed; +	bool pressed = false;  protected:  	static void _bind_methods(); @@ -464,13 +463,13 @@ public:  	virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const;  	virtual String as_text() const; -	InputEventScreenTouch(); +	InputEventScreenTouch() {}  };  class InputEventScreenDrag : public InputEventFromWindow {  	GDCLASS(InputEventScreenDrag, InputEventFromWindow); -	int index; +	int index = 0;  	Vector2 pos;  	Vector2 relative;  	Vector2 speed; @@ -494,7 +493,7 @@ public:  	virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const;  	virtual String as_text() const; -	InputEventScreenDrag(); +	InputEventScreenDrag() {}  };  class InputEventAction : public InputEvent { @@ -502,8 +501,8 @@ class InputEventAction : public InputEvent {  	GDCLASS(InputEventAction, InputEvent);  	StringName action; -	bool pressed; -	float strength; +	bool pressed = false; +	float strength = 1.0f;  protected:  	static void _bind_methods(); @@ -526,7 +525,7 @@ public:  	virtual bool is_action_type() const { return true; }  	virtual String as_text() const; -	InputEventAction(); +	InputEventAction() {}  };  class InputEventGesture : public InputEventWithModifiers { @@ -546,7 +545,7 @@ public:  class InputEventMagnifyGesture : public InputEventGesture {  	GDCLASS(InputEventMagnifyGesture, InputEventGesture); -	real_t factor; +	real_t factor = 1.0;  protected:  	static void _bind_methods(); @@ -558,7 +557,7 @@ public:  	virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const;  	virtual String as_text() const; -	InputEventMagnifyGesture(); +	InputEventMagnifyGesture() {}  };  class InputEventPanGesture : public InputEventGesture { @@ -576,20 +575,20 @@ public:  	virtual Ref<InputEvent> xformed_by(const Transform2D &p_xform, const Vector2 &p_local_ofs = Vector2()) const;  	virtual String as_text() const; -	InputEventPanGesture(); +	InputEventPanGesture() {}  };  class InputEventMIDI : public InputEvent {  	GDCLASS(InputEventMIDI, InputEvent); -	int channel; -	int message; -	int pitch; -	int velocity; -	int instrument; -	int pressure; -	int controller_number; -	int controller_value; +	int channel = 0; +	int message = 0; +	int pitch = 0; +	int velocity = 0; +	int instrument = 0; +	int pressure = 0; +	int controller_number = 0; +	int controller_value = 0;  protected:  	static void _bind_methods(); @@ -621,7 +620,7 @@ public:  	virtual String as_text() const; -	InputEventMIDI(); +	InputEventMIDI() {}  };  #endif // INPUT_EVENT_H diff --git a/core/io/compression.h b/core/io/compression.h index 8354b581fa..3e7c125d8e 100644 --- a/core/io/compression.h +++ b/core/io/compression.h @@ -53,7 +53,7 @@ public:  	static int get_max_compressed_buffer_size(int p_src_size, Mode p_mode = MODE_ZSTD);  	static int decompress(uint8_t *p_dst, int p_dst_max_size, const uint8_t *p_src, int p_src_size, Mode p_mode = MODE_ZSTD); -	Compression(); +	Compression() {}  };  #endif // COMPRESSION_H diff --git a/core/io/dtls_server.cpp b/core/io/dtls_server.cpp index 5bda06e5b9..7cbf5c618e 100644 --- a/core/io/dtls_server.cpp +++ b/core/io/dtls_server.cpp @@ -29,6 +29,7 @@  /*************************************************************************/  #include "dtls_server.h" +  #include "core/os/file_access.h"  #include "core/project_settings.h" @@ -49,6 +50,3 @@ void DTLSServer::_bind_methods() {  	ClassDB::bind_method(D_METHOD("setup", "key", "certificate", "chain"), &DTLSServer::setup, DEFVAL(Ref<X509Certificate>()));  	ClassDB::bind_method(D_METHOD("take_connection", "udp_peer"), &DTLSServer::take_connection);  } - -DTLSServer::DTLSServer() { -} diff --git a/core/io/dtls_server.h b/core/io/dtls_server.h index 7b08138f7f..ae1d3bcd98 100644 --- a/core/io/dtls_server.h +++ b/core/io/dtls_server.h @@ -51,7 +51,7 @@ public:  	virtual void stop() = 0;  	virtual Ref<PacketPeerDTLS> take_connection(Ref<PacketPeerUDP> p_peer) = 0; -	DTLSServer(); +	DTLSServer() {}  };  #endif // DTLS_SERVER_H diff --git a/core/io/file_access_buffered.cpp b/core/io/file_access_buffered.cpp index ab0fb3943c..2df91a4dd8 100644 --- a/core/io/file_access_buffered.cpp +++ b/core/io/file_access_buffered.cpp @@ -166,11 +166,3 @@ Error FileAccessBuffered::get_error() const {  	return last_error;  } - -FileAccessBuffered::FileAccessBuffered() { - -	cache_size = DEFAULT_CACHE_SIZE; -} - -FileAccessBuffered::~FileAccessBuffered() { -} diff --git a/core/io/file_access_buffered.h b/core/io/file_access_buffered.h index a6177c20be..2832367a8b 100644 --- a/core/io/file_access_buffered.h +++ b/core/io/file_access_buffered.h @@ -43,7 +43,7 @@ public:  	};  private: -	int cache_size; +	int cache_size = DEFAULT_CACHE_SIZE;  	int cache_data_left() const;  	mutable Error last_error; @@ -87,8 +87,8 @@ public:  	virtual Error get_error() const; -	FileAccessBuffered(); -	virtual ~FileAccessBuffered(); +	FileAccessBuffered() {} +	virtual ~FileAccessBuffered() {}  };  #endif diff --git a/core/io/file_access_buffered_fa.h b/core/io/file_access_buffered_fa.h index 6ec77d503b..edb4ff9a9f 100644 --- a/core/io/file_access_buffered_fa.h +++ b/core/io/file_access_buffered_fa.h @@ -132,12 +132,6 @@ public:  		set_error(OK);  	}; -	/* -	static void make_default() { -		FileAccess::create_func = FileAccessBufferedFA<T>::create; -	}; -	*/ -  	virtual uint64_t _get_modified_time(const String &p_file) {  		return f._get_modified_time(p_file); @@ -151,9 +145,7 @@ public:  		return f._set_unix_permissions(p_file, p_permissions);  	} -	FileAccessBufferedFA(){ - -	}; +	FileAccessBufferedFA() {}  };  #endif // FILE_ACCESS_BUFFERED_FA_H diff --git a/core/io/file_access_compressed.cpp b/core/io/file_access_compressed.cpp index c76142d22d..f2827b519e 100644 --- a/core/io/file_access_compressed.cpp +++ b/core/io/file_access_compressed.cpp @@ -389,25 +389,6 @@ Error FileAccessCompressed::_set_unix_permissions(const String &p_file, uint32_t  	return FAILED;  } -FileAccessCompressed::FileAccessCompressed() : -		cmode(Compression::MODE_ZSTD), -		writing(false), -		write_ptr(nullptr), -		write_buffer_size(0), -		write_max(0), -		block_size(0), -		read_eof(false), -		at_end(false), -		read_ptr(nullptr), -		read_block(0), -		read_block_count(0), -		read_block_size(0), -		read_pos(0), -		read_total(0), -		magic("GCMP"), -		f(nullptr) { -} -  FileAccessCompressed::~FileAccessCompressed() {  	if (f) diff --git a/core/io/file_access_compressed.h b/core/io/file_access_compressed.h index 0bb311faa8..f192be0883 100644 --- a/core/io/file_access_compressed.h +++ b/core/io/file_access_compressed.h @@ -36,15 +36,15 @@  class FileAccessCompressed : public FileAccess { -	Compression::Mode cmode; -	bool writing; -	uint32_t write_pos; -	uint8_t *write_ptr; -	uint32_t write_buffer_size; -	uint32_t write_max; -	uint32_t block_size; -	mutable bool read_eof; -	mutable bool at_end; +	Compression::Mode cmode = Compression::MODE_ZSTD; +	bool writing = false; +	uint32_t write_pos = 0; +	uint8_t *write_ptr = nullptr; +	uint32_t write_buffer_size = 0; +	uint32_t write_max = 0; +	uint32_t block_size = 0; +	mutable bool read_eof = false; +	mutable bool at_end = false;  	struct ReadBlock {  		int csize; @@ -52,17 +52,17 @@ class FileAccessCompressed : public FileAccess {  	};  	mutable Vector<uint8_t> comp_buffer; -	uint8_t *read_ptr; -	mutable int read_block; -	int read_block_count; -	mutable int read_block_size; -	mutable int read_pos; +	uint8_t *read_ptr = nullptr; +	mutable int read_block = 0; +	int read_block_count = 0; +	mutable int read_block_size = 0; +	mutable int read_pos = 0;  	Vector<ReadBlock> read_blocks; -	uint32_t read_total; +	uint32_t read_total = 0; -	String magic; +	String magic = "GCMP";  	mutable Vector<uint8_t> buffer; -	FileAccess *f; +	FileAccess *f = nullptr;  public:  	void configure(const String &p_magic, Compression::Mode p_mode = Compression::MODE_ZSTD, int p_block_size = 4096); @@ -94,7 +94,7 @@ public:  	virtual uint32_t _get_unix_permissions(const String &p_file);  	virtual Error _set_unix_permissions(const String &p_file, uint32_t p_permissions); -	FileAccessCompressed(); +	FileAccessCompressed() {}  	virtual ~FileAccessCompressed();  }; diff --git a/core/io/file_access_encrypted.cpp b/core/io/file_access_encrypted.cpp index a5b3807789..271c34ec4a 100644 --- a/core/io/file_access_encrypted.cpp +++ b/core/io/file_access_encrypted.cpp @@ -317,15 +317,6 @@ Error FileAccessEncrypted::_set_unix_permissions(const String &p_file, uint32_t  	return ERR_UNAVAILABLE;  } -FileAccessEncrypted::FileAccessEncrypted() { - -	file = nullptr; -	pos = 0; -	eofed = false; -	mode = MODE_MAX; -	writing = false; -} -  FileAccessEncrypted::~FileAccessEncrypted() {  	if (file) diff --git a/core/io/file_access_encrypted.h b/core/io/file_access_encrypted.h index 7a9f4ecdd8..e269c1e30c 100644 --- a/core/io/file_access_encrypted.h +++ b/core/io/file_access_encrypted.h @@ -42,15 +42,15 @@ public:  	};  private: -	Mode mode; +	Mode mode = MODE_MAX;  	Vector<uint8_t> key; -	bool writing; -	FileAccess *file; +	bool writing = false; +	FileAccess *file = nullptr;  	size_t base;  	size_t length;  	Vector<uint8_t> data; -	mutable int pos; -	mutable bool eofed; +	mutable int pos = 0; +	mutable bool eofed = false;  public:  	Error open_and_parse(FileAccess *p_base, const Vector<uint8_t> &p_key, Mode p_mode); @@ -85,7 +85,7 @@ public:  	virtual uint32_t _get_unix_permissions(const String &p_file);  	virtual Error _set_unix_permissions(const String &p_file, uint32_t p_permissions); -	FileAccessEncrypted(); +	FileAccessEncrypted() {}  	~FileAccessEncrypted();  }; diff --git a/core/io/file_access_memory.cpp b/core/io/file_access_memory.cpp index a2379ce88f..a3e04a4538 100644 --- a/core/io/file_access_memory.cpp +++ b/core/io/file_access_memory.cpp @@ -193,8 +193,3 @@ void FileAccessMemory::store_buffer(const uint8_t *p_src, int p_length) {  	copymem(&data[pos], p_src, write);  	pos += p_length;  } - -FileAccessMemory::FileAccessMemory() { - -	data = nullptr; -} diff --git a/core/io/file_access_memory.h b/core/io/file_access_memory.h index 2db14db265..d8be989b20 100644 --- a/core/io/file_access_memory.h +++ b/core/io/file_access_memory.h @@ -35,7 +35,7 @@  class FileAccessMemory : public FileAccess { -	uint8_t *data; +	uint8_t *data = nullptr;  	int length;  	mutable int pos; @@ -73,7 +73,7 @@ public:  	virtual uint32_t _get_unix_permissions(const String &p_file) { return 0; }  	virtual Error _set_unix_permissions(const String &p_file, uint32_t p_permissions) { return FAILED; } -	FileAccessMemory(); +	FileAccessMemory() {}  };  #endif // FILE_ACCESS_MEMORY_H diff --git a/core/io/file_access_network.cpp b/core/io/file_access_network.cpp index a3f307393f..00f504c391 100644 --- a/core/io/file_access_network.cpp +++ b/core/io/file_access_network.cpp @@ -222,17 +222,11 @@ Error FileAccessNetworkClient::connect(const String &p_host, int p_port, const S  FileAccessNetworkClient *FileAccessNetworkClient::singleton = nullptr;  FileAccessNetworkClient::FileAccessNetworkClient() { - -	thread = nullptr; -	quit = false;  	singleton = this; -	last_id = 0;  	client.instance(); -	lockcount = 0;  }  FileAccessNetworkClient::~FileAccessNetworkClient() { -  	if (thread) {  		quit = true;  		sem.post(); @@ -513,9 +507,6 @@ void FileAccessNetwork::configure() {  FileAccessNetwork::FileAccessNetwork() { -	eof_flag = false; -	opened = false; -	pos = 0;  	FileAccessNetworkClient *nc = FileAccessNetworkClient::singleton;  	nc->lock_mutex();  	id = nc->last_id++; @@ -523,9 +514,6 @@ FileAccessNetwork::FileAccessNetwork() {  	nc->unlock_mutex();  	page_size = GLOBAL_GET("network/remote_fs/page_size");  	read_ahead = GLOBAL_GET("network/remote_fs/page_read_ahead"); -	last_activity_val = 0; -	waiting_on_page = -1; -	last_page = -1;  }  FileAccessNetwork::~FileAccessNetwork() { diff --git a/core/io/file_access_network.h b/core/io/file_access_network.h index 7f664b46f7..6cdd6af0b4 100644 --- a/core/io/file_access_network.h +++ b/core/io/file_access_network.h @@ -50,13 +50,14 @@ class FileAccessNetworkClient {  	List<BlockRequest> block_requests;  	Semaphore sem; -	Thread *thread; -	bool quit; +	Thread *thread = nullptr; +	bool quit = false;  	Mutex mutex;  	Mutex blockrequest_mutex;  	Map<int, FileAccessNetwork *> accesses;  	Ref<StreamPeerTCP> client; -	int last_id; +	int last_id = 0; +	int lockcount = 0;  	Vector<uint8_t> block; @@ -67,7 +68,6 @@ class FileAccessNetworkClient {  	void put_64(int64_t p_64);  	int get_32();  	int64_t get_64(); -	int lockcount;  	void lock_mutex();  	void unlock_mutex(); @@ -88,27 +88,23 @@ class FileAccessNetwork : public FileAccess {  	Semaphore sem;  	Semaphore page_sem;  	Mutex buffer_mutex; -	bool opened; +	bool opened = false;  	size_t total_size; -	mutable size_t pos; +	mutable size_t pos = 0;  	int id; -	mutable bool eof_flag; -	mutable int last_page; -	mutable uint8_t *last_page_buff; +	mutable bool eof_flag = false; +	mutable int last_page = -1; +	mutable uint8_t *last_page_buff = nullptr;  	int page_size;  	int read_ahead; -	mutable int waiting_on_page; -	mutable int last_activity_val; +	mutable int waiting_on_page = -1; +  	struct Page { -		int activity; -		bool queued; +		int activity = 0; +		bool queued = false;  		Vector<uint8_t> buffer; -		Page() { -			activity = 0; -			queued = false; -		}  	};  	mutable Vector<Page> pages; diff --git a/core/io/file_access_pack.cpp b/core/io/file_access_pack.cpp index fd9b83eaf9..d70f2ba445 100644 --- a/core/io/file_access_pack.cpp +++ b/core/io/file_access_pack.cpp @@ -109,8 +109,6 @@ PackedData::PackedData() {  	singleton = this;  	root = memnew(PackedDir); -	root->parent = nullptr; -	disabled = false;  	add_pack_source(memnew(PackedSourcePCK));  } @@ -506,10 +504,5 @@ String DirAccessPack::get_filesystem_type() const {  }  DirAccessPack::DirAccessPack() { -  	current = PackedData::get_singleton()->root; -	cdir = false; -} - -DirAccessPack::~DirAccessPack() {  } diff --git a/core/io/file_access_pack.h b/core/io/file_access_pack.h index 8df6826ac9..aa3a14272b 100644 --- a/core/io/file_access_pack.h +++ b/core/io/file_access_pack.h @@ -61,15 +61,15 @@ public:  private:  	struct PackedDir { -		PackedDir *parent; +		PackedDir *parent = nullptr;  		String name;  		Map<String, PackedDir *> subdirs;  		Set<String> files;  	};  	struct PathMD5 { -		uint64_t a; -		uint64_t b; +		uint64_t a = 0; +		uint64_t b = 0;  		bool operator<(const PathMD5 &p_md5) const {  			if (p_md5.a == a) { @@ -83,14 +83,12 @@ private:  			return a == p_md5.a && b == p_md5.b;  		}; -		PathMD5() { -			a = b = 0; -		}; +		PathMD5() {}  		PathMD5(const Vector<uint8_t> p_buf) {  			a = *((uint64_t *)&p_buf[0]);  			b = *((uint64_t *)&p_buf[8]); -		}; +		}  	};  	Map<PathMD5, PackedFile> files; @@ -98,10 +96,9 @@ private:  	Vector<PackSource *> sources;  	PackedDir *root; -	//Map<String,PackedDir*> dirs;  	static PackedData *singleton; -	bool disabled; +	bool disabled = false;  	void _free_packed_dirs(PackedDir *p_dir); @@ -203,7 +200,7 @@ class DirAccessPack : public DirAccess {  	List<String> list_dirs;  	List<String> list_files; -	bool cdir; +	bool cdir = false;  public:  	virtual Error list_dir_begin(); @@ -231,7 +228,7 @@ public:  	virtual String get_filesystem_type() const;  	DirAccessPack(); -	~DirAccessPack(); +	~DirAccessPack() {}  };  #endif // FILE_ACCESS_PACK_H diff --git a/core/io/file_access_zip.cpp b/core/io/file_access_zip.cpp index 57de66afaf..9d068fe809 100644 --- a/core/io/file_access_zip.cpp +++ b/core/io/file_access_zip.cpp @@ -241,9 +241,7 @@ ZipArchive *ZipArchive::get_singleton() {  }  ZipArchive::ZipArchive() { -  	instance = this; -	//fa_create_func = FileAccess::get_create_func();  }  ZipArchive::~ZipArchive() { @@ -369,14 +367,12 @@ bool FileAccessZip::file_exists(const String &p_name) {  	return false;  } -FileAccessZip::FileAccessZip(const String &p_path, const PackedData::PackedFile &p_file) : -		zfile(nullptr) { +FileAccessZip::FileAccessZip(const String &p_path, const PackedData::PackedFile &p_file) {  	_open(p_path, FileAccess::READ);  }  FileAccessZip::~FileAccessZip() { -  	close();  } -#endif +#endif // MINIZIP_ENABLED diff --git a/core/io/file_access_zip.h b/core/io/file_access_zip.h index d5ce7d7a8d..17a3d085b6 100644 --- a/core/io/file_access_zip.h +++ b/core/io/file_access_zip.h @@ -45,18 +45,15 @@ class ZipArchive : public PackSource {  public:  	struct File { -		int package; +		int package = -1;  		unz_file_pos file_pos; -		File() { - -			package = -1; -		}; +		File() {}  	};  private:  	struct Package {  		String filename; -		unzFile zfile; +		unzFile zfile = nullptr;  	};  	Vector<Package> packages; diff --git a/core/io/http_client.cpp b/core/io/http_client.cpp index 56f8f1ff91..672569c5db 100644 --- a/core/io/http_client.cpp +++ b/core/io/http_client.cpp @@ -729,27 +729,10 @@ int HTTPClient::get_read_chunk_size() const {  }  HTTPClient::HTTPClient() { -  	tcp_connection.instance(); -	resolving = IP::RESOLVER_INVALID_ID; -	status = STATUS_DISCONNECTED; -	head_request = false; -	conn_port = -1; -	body_size = -1; -	chunked = false; -	body_left = 0; -	read_until_eof = false; -	chunk_left = 0; -	chunk_trailer_part = false; -	response_num = 0; -	ssl = false; -	blocking = false; -	handshaking = false; -	read_chunk_size = 4096;  } -HTTPClient::~HTTPClient() { -} +HTTPClient::~HTTPClient() {}  #endif // #ifndef JAVASCRIPT_ENABLED diff --git a/core/io/http_client.h b/core/io/http_client.h index 03ba20f8dd..05690534ae 100644 --- a/core/io/http_client.h +++ b/core/io/http_client.h @@ -158,32 +158,32 @@ private:  	};  #ifndef JAVASCRIPT_ENABLED -	Status status; -	IP::ResolverID resolving; -	int conn_port; +	Status status = STATUS_DISCONNECTED; +	IP::ResolverID resolving = IP::RESOLVER_INVALID_ID; +	int conn_port = -1;  	String conn_host; -	bool ssl; -	bool ssl_verify_host; -	bool blocking; -	bool handshaking; -	bool head_request; +	bool ssl = false; +	bool ssl_verify_host = false; +	bool blocking = false; +	bool handshaking = false; +	bool head_request = false;  	Vector<uint8_t> response_str; -	bool chunked; +	bool chunked = false;  	Vector<uint8_t> chunk; -	int chunk_left; -	bool chunk_trailer_part; -	int body_size; -	int body_left; -	bool read_until_eof; +	int chunk_left = 0; +	bool chunk_trailer_part = false; +	int body_size = -1; +	int body_left = 0; +	bool read_until_eof = false;  	Ref<StreamPeerTCP> tcp_connection;  	Ref<StreamPeer> connection; -	int response_num; +	int response_num = 0;  	Vector<String> response_headers; -	int read_chunk_size; +	int read_chunk_size = 4096;  	Error _get_http_data(uint8_t *p_buffer, int p_bytes, int &r_received); diff --git a/core/io/logger.cpp b/core/io/logger.cpp index 02cc78538e..23165b575e 100644 --- a/core/io/logger.cpp +++ b/core/io/logger.cpp @@ -102,8 +102,6 @@ void Logger::logf_error(const char *p_format, ...) {  	va_end(argp);  } -Logger::~Logger() {} -  void RotatedFileLogger::close_file() {  	if (file) {  		memdelete(file); @@ -180,8 +178,7 @@ void RotatedFileLogger::rotate_file() {  RotatedFileLogger::RotatedFileLogger(const String &p_base_path, int p_max_files) :  		base_path(p_base_path.simplify_path()), -		max_files(p_max_files > 0 ? p_max_files : 1), -		file(nullptr) { +		max_files(p_max_files > 0 ? p_max_files : 1) {  	rotate_file();  } @@ -236,8 +233,6 @@ void StdLogger::logv(const char *p_format, va_list p_list, bool p_err) {  	}  } -StdLogger::~StdLogger() {} -  CompositeLogger::CompositeLogger(Vector<Logger *> p_loggers) :  		loggers(p_loggers) {  } diff --git a/core/io/logger.h b/core/io/logger.h index 7028551185..54f1a42da9 100644 --- a/core/io/logger.h +++ b/core/io/logger.h @@ -55,7 +55,7 @@ public:  	void logf(const char *p_format, ...) _PRINTF_FORMAT_ATTRIBUTE_2_3;  	void logf_error(const char *p_format, ...) _PRINTF_FORMAT_ATTRIBUTE_2_3; -	virtual ~Logger(); +	virtual ~Logger() {}  };  /** @@ -65,7 +65,7 @@ class StdLogger : public Logger {  public:  	virtual void logv(const char *p_format, va_list p_list, bool p_err) _PRINTF_FORMAT_ATTRIBUTE_2_0; -	virtual ~StdLogger(); +	virtual ~StdLogger() {}  };  /** @@ -78,7 +78,7 @@ class RotatedFileLogger : public Logger {  	String base_path;  	int max_files; -	FileAccess *file; +	FileAccess *file = nullptr;  	void rotate_file_without_closing();  	void close_file(); diff --git a/core/io/marshalls.cpp b/core/io/marshalls.cpp index 81bc45b2f7..abf27954b8 100644 --- a/core/io/marshalls.cpp +++ b/core/io/marshalls.cpp @@ -53,9 +53,6 @@ ObjectID EncodedObjectAsID::get_object_id() const {  	return id;  } -EncodedObjectAsID::EncodedObjectAsID() { -} -  #define _S(a) ((int32_t)a)  #define ERR_FAIL_ADD_OF(a, b, err) ERR_FAIL_COND_V(_S(b) < 0 || _S(a) < 0 || _S(a) > INT_MAX - _S(b), err)  #define ERR_FAIL_MUL_OF(a, b, err) ERR_FAIL_COND_V(_S(a) < 0 || _S(b) <= 0 || _S(a) > INT_MAX / _S(b), err) diff --git a/core/io/marshalls.h b/core/io/marshalls.h index 650c95364a..1ba786d5d9 100644 --- a/core/io/marshalls.h +++ b/core/io/marshalls.h @@ -197,7 +197,7 @@ public:  	void set_object_id(ObjectID p_id);  	ObjectID get_object_id() const; -	EncodedObjectAsID(); +	EncodedObjectAsID() {}  };  Error decode_variant(Variant &r_variant, const uint8_t *p_buffer, int p_len, int *r_len = nullptr, bool p_allow_objects = false); diff --git a/core/io/multiplayer_api.cpp b/core/io/multiplayer_api.cpp index 94e2fdb72c..998bcfd3f3 100644 --- a/core/io/multiplayer_api.cpp +++ b/core/io/multiplayer_api.cpp @@ -33,6 +33,7 @@  #include "core/debugger/engine_debugger.h"  #include "core/io/marshalls.h"  #include "scene/main/node.h" +  #include <stdint.h>  #define NODE_ID_COMPRESSION_SHIFT 3 @@ -1261,10 +1262,7 @@ void MultiplayerAPI::_bind_methods() {  	BIND_ENUM_CONSTANT(RPC_MODE_PUPPETSYNC);  } -MultiplayerAPI::MultiplayerAPI() : -		allow_object_decoding(false) { -	rpc_sender_id = 0; -	root_node = nullptr; +MultiplayerAPI::MultiplayerAPI() {  	clear();  } diff --git a/core/io/multiplayer_api.h b/core/io/multiplayer_api.h index 4eb4a53e99..2603fb1e27 100644 --- a/core/io/multiplayer_api.h +++ b/core/io/multiplayer_api.h @@ -56,14 +56,14 @@ private:  	};  	Ref<NetworkedMultiplayerPeer> network_peer; -	int rpc_sender_id; +	int rpc_sender_id = 0;  	Set<int> connected_peers;  	HashMap<NodePath, PathSentCache> path_send_cache;  	Map<int, PathGetCache> path_get_cache;  	int last_send_cache_id;  	Vector<uint8_t> packet_cache; -	Node *root_node; -	bool allow_object_decoding; +	Node *root_node = nullptr; +	bool allow_object_decoding = false;  protected:  	static void _bind_methods(); diff --git a/core/io/networked_multiplayer_peer.cpp b/core/io/networked_multiplayer_peer.cpp index b2f810d212..332beb4c8c 100644 --- a/core/io/networked_multiplayer_peer.cpp +++ b/core/io/networked_multiplayer_peer.cpp @@ -66,6 +66,3 @@ void NetworkedMultiplayerPeer::_bind_methods() {  	ADD_SIGNAL(MethodInfo("connection_succeeded"));  	ADD_SIGNAL(MethodInfo("connection_failed"));  } - -NetworkedMultiplayerPeer::NetworkedMultiplayerPeer() { -} diff --git a/core/io/networked_multiplayer_peer.h b/core/io/networked_multiplayer_peer.h index c1f1924051..8792886ff3 100644 --- a/core/io/networked_multiplayer_peer.h +++ b/core/io/networked_multiplayer_peer.h @@ -74,7 +74,7 @@ public:  	virtual ConnectionStatus get_connection_status() const = 0; -	NetworkedMultiplayerPeer(); +	NetworkedMultiplayerPeer() {}  };  VARIANT_ENUM_CAST(NetworkedMultiplayerPeer::TransferMode) diff --git a/core/io/packet_peer.cpp b/core/io/packet_peer.cpp index 38abb5c0d6..6d3e1341a7 100644 --- a/core/io/packet_peer.cpp +++ b/core/io/packet_peer.cpp @@ -35,11 +35,6 @@  /* helpers / binders */ -PacketPeer::PacketPeer() : -		last_get_error(OK), -		encode_buffer_max_size(8 * 1024 * 1024) { -} -  void PacketPeer::set_encode_buffer_max_size(int p_max_size) {  	ERR_FAIL_COND_MSG(p_max_size < 1024, "Max encode buffer must be at least 1024 bytes"); diff --git a/core/io/packet_peer.h b/core/io/packet_peer.h index 62144259cc..b69efa531f 100644 --- a/core/io/packet_peer.h +++ b/core/io/packet_peer.h @@ -47,9 +47,9 @@ class PacketPeer : public Reference {  	Vector<uint8_t> _get_packet();  	Error _get_packet_error() const; -	mutable Error last_get_error; +	mutable Error last_get_error = OK; -	int encode_buffer_max_size; +	int encode_buffer_max_size = 8 * 1024 * 1024;  	Vector<uint8_t> encode_buffer;  public: @@ -70,7 +70,7 @@ public:  	void set_encode_buffer_max_size(int p_max_size);  	int get_encode_buffer_max_size() const; -	PacketPeer(); +	PacketPeer() {}  	~PacketPeer() {}  }; diff --git a/core/io/packet_peer_dtls.cpp b/core/io/packet_peer_dtls.cpp index 6da115eed2..ada3cb10a2 100644 --- a/core/io/packet_peer_dtls.cpp +++ b/core/io/packet_peer_dtls.cpp @@ -57,6 +57,3 @@ void PacketPeerDTLS::_bind_methods() {  	BIND_ENUM_CONSTANT(STATUS_ERROR);  	BIND_ENUM_CONSTANT(STATUS_ERROR_HOSTNAME_MISMATCH);  } - -PacketPeerDTLS::PacketPeerDTLS() { -} diff --git a/core/io/packet_peer_dtls.h b/core/io/packet_peer_dtls.h index 4f9f4535bc..c2ff4e1a7f 100644 --- a/core/io/packet_peer_dtls.h +++ b/core/io/packet_peer_dtls.h @@ -60,7 +60,7 @@ public:  	static PacketPeerDTLS *create();  	static bool is_available(); -	PacketPeerDTLS(); +	PacketPeerDTLS() {}  };  VARIANT_ENUM_CAST(PacketPeerDTLS::Status); diff --git a/core/io/packet_peer_udp.cpp b/core/io/packet_peer_udp.cpp index f800ffc3db..8b6bd7ef90 100644 --- a/core/io/packet_peer_udp.cpp +++ b/core/io/packet_peer_udp.cpp @@ -343,12 +343,6 @@ void PacketPeerUDP::_bind_methods() {  }  PacketPeerUDP::PacketPeerUDP() : -		packet_port(0), -		queue_count(0), -		peer_port(0), -		connected(false), -		blocking(true), -		broadcast(false),  		_sock(Ref<NetSocket>(NetSocket::create())) {  	rb.resize(16);  } diff --git a/core/io/packet_peer_udp.h b/core/io/packet_peer_udp.h index b5a9fc9ec3..23fc5460a6 100644 --- a/core/io/packet_peer_udp.h +++ b/core/io/packet_peer_udp.h @@ -47,14 +47,14 @@ protected:  	uint8_t recv_buffer[PACKET_BUFFER_SIZE];  	uint8_t packet_buffer[PACKET_BUFFER_SIZE];  	IP_Address packet_ip; -	int packet_port; -	int queue_count; +	int packet_port = 0; +	int queue_count = 0;  	IP_Address peer_addr; -	int peer_port; -	bool connected; -	bool blocking; -	bool broadcast; +	int peer_port = 0; +	bool connected = false; +	bool blocking = true; +	bool broadcast = false;  	Ref<NetSocket> _sock;  	static void _bind_methods(); diff --git a/core/io/pck_packer.cpp b/core/io/pck_packer.cpp index 5c4b3379ee..124ac30b88 100644 --- a/core/io/pck_packer.cpp +++ b/core/io/pck_packer.cpp @@ -180,11 +180,6 @@ Error PCKPacker::flush(bool p_verbose) {  	return OK;  }; -PCKPacker::PCKPacker() { - -	file = nullptr; -}; -  PCKPacker::~PCKPacker() {  	if (file != nullptr) {  		memdelete(file); diff --git a/core/io/pck_packer.h b/core/io/pck_packer.h index 6058de8345..2848ac3a65 100644 --- a/core/io/pck_packer.h +++ b/core/io/pck_packer.h @@ -39,7 +39,7 @@ class PCKPacker : public Reference {  	GDCLASS(PCKPacker, Reference); -	FileAccess *file; +	FileAccess *file = nullptr;  	int alignment;  	static void _bind_methods(); @@ -58,7 +58,7 @@ public:  	Error add_file(const String &p_file, const String &p_src);  	Error flush(bool p_verbose = false); -	PCKPacker(); +	PCKPacker() {}  	~PCKPacker();  }; diff --git a/core/io/resource_format_binary.cpp b/core/io/resource_format_binary.cpp index e0fea143bb..8ce17bcfbe 100644 --- a/core/io/resource_format_binary.cpp +++ b/core/io/resource_format_binary.cpp @@ -1024,18 +1024,6 @@ String ResourceLoaderBinary::recognize(FileAccess *p_f) {  	return type;  } -ResourceLoaderBinary::ResourceLoaderBinary() : -		translation_remapped(false), -		ver_format(0), -		f(nullptr), -		importmd_ofs(0), -		error(OK) { - -	use_nocache = false; -	progress = nullptr; -	use_sub_threads = false; -} -  ResourceLoaderBinary::~ResourceLoaderBinary() {  	if (f) @@ -2118,6 +2106,5 @@ void ResourceFormatSaverBinary::get_recognized_extensions(const RES &p_resource,  ResourceFormatSaverBinary *ResourceFormatSaverBinary::singleton = nullptr;  ResourceFormatSaverBinary::ResourceFormatSaverBinary() { -  	singleton = this;  } diff --git a/core/io/resource_format_binary.h b/core/io/resource_format_binary.h index 3c8d916c0a..57aa086022 100644 --- a/core/io/resource_format_binary.h +++ b/core/io/resource_format_binary.h @@ -37,16 +37,16 @@  class ResourceLoaderBinary { -	bool translation_remapped; +	bool translation_remapped = false;  	String local_path;  	String res_path;  	String type;  	Ref<Resource> resource; -	uint32_t ver_format; +	uint32_t ver_format = 0; -	FileAccess *f; +	FileAccess *f = nullptr; -	uint64_t importmd_ofs; +	uint64_t importmd_ofs = 0;  	Vector<char> str_buf;  	List<RES> resource_cache; @@ -61,8 +61,8 @@ class ResourceLoaderBinary {  		RES cache;  	}; -	bool use_sub_threads; -	float *progress; +	bool use_sub_threads = false; +	float *progress = nullptr;  	Vector<ExtResource> external_resources;  	struct IntResource { @@ -77,9 +77,9 @@ class ResourceLoaderBinary {  	void _advance_padding(uint32_t p_len);  	Map<String, String> remaps; -	Error error; +	Error error = OK; -	bool use_nocache; +	bool use_nocache = false;  	friend class ResourceFormatLoaderBinary; @@ -98,7 +98,7 @@ public:  	String recognize(FileAccess *p_f);  	void get_dependencies(FileAccess *p_f, List<String> *p_dependencies, bool p_add_types); -	ResourceLoaderBinary(); +	ResourceLoaderBinary() {}  	~ResourceLoaderBinary();  }; diff --git a/core/io/resource_loader.cpp b/core/io/resource_loader.cpp index d90802d7e2..dc44be4e0b 100644 --- a/core/io/resource_loader.cpp +++ b/core/io/resource_loader.cpp @@ -33,7 +33,6 @@  #include "core/io/resource_importer.h"  #include "core/os/file_access.h"  #include "core/os/os.h" -#include "core/path_remap.h"  #include "core/print_string.h"  #include "core/project_settings.h"  #include "core/translation.h" diff --git a/core/io/stream_peer.cpp b/core/io/stream_peer.cpp index b28b17aa95..9bbe92096d 100644 --- a/core/io/stream_peer.cpp +++ b/core/io/stream_peer.cpp @@ -536,8 +536,3 @@ Ref<StreamPeerBuffer> StreamPeerBuffer::duplicate() const {  	spb->data = data;  	return spb;  } - -StreamPeerBuffer::StreamPeerBuffer() { - -	pointer = 0; -} diff --git a/core/io/stream_peer.h b/core/io/stream_peer.h index 9358a2c07c..a390fdc325 100644 --- a/core/io/stream_peer.h +++ b/core/io/stream_peer.h @@ -47,7 +47,7 @@ protected:  	Array _get_data(int p_bytes);  	Array _get_partial_data(int p_bytes); -	bool big_endian; +	bool big_endian = false;  public:  	virtual Error put_data(const uint8_t *p_data, int p_bytes) = 0; ///< put a whole chunk of data, blocking until it sent @@ -89,7 +89,7 @@ public:  	String get_utf8_string(int p_bytes = -1);  	Variant get_var(bool p_allow_objects = false); -	StreamPeer() { big_endian = false; } +	StreamPeer() {}  };  class StreamPeerBuffer : public StreamPeer { @@ -97,7 +97,7 @@ class StreamPeerBuffer : public StreamPeer {  	GDCLASS(StreamPeerBuffer, StreamPeer);  	Vector<uint8_t> data; -	int pointer; +	int pointer = 0;  protected:  	static void _bind_methods(); @@ -123,7 +123,7 @@ public:  	Ref<StreamPeerBuffer> duplicate() const; -	StreamPeerBuffer(); +	StreamPeerBuffer() {}  };  #endif // STREAM_PEER_H diff --git a/core/io/stream_peer_ssl.cpp b/core/io/stream_peer_ssl.cpp index d98935f77c..1d86c35578 100644 --- a/core/io/stream_peer_ssl.cpp +++ b/core/io/stream_peer_ssl.cpp @@ -73,7 +73,3 @@ void StreamPeerSSL::_bind_methods() {  	BIND_ENUM_CONSTANT(STATUS_ERROR);  	BIND_ENUM_CONSTANT(STATUS_ERROR_HOSTNAME_MISMATCH);  } - -StreamPeerSSL::StreamPeerSSL() { -	blocking_handshake = true; -} diff --git a/core/io/stream_peer_ssl.h b/core/io/stream_peer_ssl.h index de3cb09c60..81b95b856d 100644 --- a/core/io/stream_peer_ssl.h +++ b/core/io/stream_peer_ssl.h @@ -43,7 +43,7 @@ protected:  	static bool available; -	bool blocking_handshake; +	bool blocking_handshake = true;  public:  	enum Status { @@ -68,7 +68,7 @@ public:  	static bool is_available(); -	StreamPeerSSL(); +	StreamPeerSSL() {}  };  VARIANT_ENUM_CAST(StreamPeerSSL::Status); diff --git a/core/io/stream_peer_tcp.cpp b/core/io/stream_peer_tcp.cpp index f0c5816d73..6218b98758 100644 --- a/core/io/stream_peer_tcp.cpp +++ b/core/io/stream_peer_tcp.cpp @@ -362,10 +362,7 @@ void StreamPeerTCP::_bind_methods() {  }  StreamPeerTCP::StreamPeerTCP() : -		_sock(Ref<NetSocket>(NetSocket::create())), -		timeout(0), -		status(STATUS_NONE), -		peer_port(0) { +		_sock(Ref<NetSocket>(NetSocket::create())) {  }  StreamPeerTCP::~StreamPeerTCP() { diff --git a/core/io/stream_peer_tcp.h b/core/io/stream_peer_tcp.h index 86df9ab8cf..571f6b7c54 100644 --- a/core/io/stream_peer_tcp.h +++ b/core/io/stream_peer_tcp.h @@ -52,10 +52,10 @@ public:  protected:  	Ref<NetSocket> _sock; -	uint64_t timeout; -	Status status; +	uint64_t timeout = 0; +	Status status = STATUS_NONE;  	IP_Address peer_host; -	uint16_t peer_port; +	uint16_t peer_port = 0;  	Error _connect(const String &p_address, int p_port);  	Error _poll_connection(); diff --git a/core/io/translation_loader_po.cpp b/core/io/translation_loader_po.cpp index bce5361c76..6f79e2554b 100644 --- a/core/io/translation_loader_po.cpp +++ b/core/io/translation_loader_po.cpp @@ -212,6 +212,3 @@ String TranslationLoaderPO::get_resource_type(const String &p_path) const {  		return "Translation";  	return "";  } - -TranslationLoaderPO::TranslationLoaderPO() { -} diff --git a/core/io/translation_loader_po.h b/core/io/translation_loader_po.h index 137dfd1768..a196a37dc0 100644 --- a/core/io/translation_loader_po.h +++ b/core/io/translation_loader_po.h @@ -43,7 +43,7 @@ public:  	virtual bool handles_type(const String &p_type) const;  	virtual String get_resource_type(const String &p_path) const; -	TranslationLoaderPO(); +	TranslationLoaderPO() {}  };  #endif // TRANSLATION_LOADER_PO_H diff --git a/core/io/xml_parser.cpp b/core/io/xml_parser.cpp index 9613ad3f10..a4b64bf17c 100644 --- a/core/io/xml_parser.cpp +++ b/core/io/xml_parser.cpp @@ -543,9 +543,6 @@ int XMLParser::get_current_line() const {  }  XMLParser::XMLParser() { - -	data = nullptr; -	close();  	special_characters.push_back("&");  	special_characters.push_back("<lt;");  	special_characters.push_back(">gt;"); diff --git a/core/io/xml_parser.h b/core/io/xml_parser.h index 26c3e6802f..42b7d6e0d4 100644 --- a/core/io/xml_parser.h +++ b/core/io/xml_parser.h @@ -66,15 +66,15 @@ public:  	};  private: -	char *data; -	char *P; -	uint64_t length; +	char *data = nullptr; +	char *P = nullptr; +	uint64_t length = 0;  	void unescape(String &p_str);  	Vector<String> special_characters;  	String node_name; -	bool node_empty; -	NodeType node_type; -	uint64_t node_offset; +	bool node_empty = false; +	NodeType node_type = NODE_NONE; +	uint64_t node_offset = 0;  	struct Attribute {  		String name; diff --git a/core/list.h b/core/list.h index 65d45ffdfc..eb74fa7917 100644 --- a/core/list.h +++ b/core/list.h @@ -54,9 +54,9 @@ public:  		friend class List<T, A>;  		T value; -		Element *next_ptr; -		Element *prev_ptr; -		_Data *data; +		Element *next_ptr = nullptr; +		Element *prev_ptr = nullptr; +		_Data *data = nullptr;  	public:  		/** @@ -139,11 +139,7 @@ public:  			data->erase(this);  		} -		_FORCE_INLINE_ Element() { -			next_ptr = 0; -			prev_ptr = 0; -			data = nullptr; -		}; +		_FORCE_INLINE_ Element() {}  	};  private: @@ -178,7 +174,7 @@ private:  		}  	}; -	_Data *_data; +	_Data *_data = nullptr;  public:  	/** @@ -687,7 +683,6 @@ public:  	 */  	List(const List &p_list) { -		_data = nullptr;  		const Element *it = p_list.front();  		while (it) { @@ -696,9 +691,8 @@ public:  		}  	} -	List() { -		_data = nullptr; -	}; +	List() {} +  	~List() {  		clear();  		if (_data) { diff --git a/core/map.h b/core/map.h index 6b9dff51de..621b6c2842 100644 --- a/core/map.h +++ b/core/map.h @@ -51,12 +51,12 @@ public:  	private:  		friend class Map<K, V, C, A>; -		int color; -		Element *right; -		Element *left; -		Element *parent; -		Element *_next; -		Element *_prev; +		int color = RED; +		Element *right = nullptr; +		Element *left = nullptr; +		Element *parent = nullptr; +		Element *_next = nullptr; +		Element *_prev = nullptr;  		K _key;  		V _value;  		//_Data *data; @@ -93,22 +93,15 @@ public:  		const V &get() const {  			return _value;  		}; -		Element() { -			color = RED; -			right = nullptr; -			left = nullptr; -			parent = nullptr; -			_next = nullptr; -			_prev = nullptr; -		}; +		Element() {}  	};  private:  	struct _Data { -		Element *_root; +		Element *_root = nullptr;  		Element *_nil; -		int size_cache; +		int size_cache = 0;  		_FORCE_INLINE_ _Data() {  #ifdef GLOBALNIL_DISABLED @@ -118,8 +111,6 @@ private:  #else  			_nil = (Element *)&_GlobalNilClass::_nil;  #endif -			_root = nullptr; -			size_cache = 0;  		}  		void _create_root() { @@ -673,8 +664,7 @@ public:  		_copy_from(p_map);  	} -	_FORCE_INLINE_ Map() { -	} +	_FORCE_INLINE_ Map() {}  	~Map() { diff --git a/core/math/a_star.cpp b/core/math/a_star.cpp index 3aba753f51..d6d6101402 100644 --- a/core/math/a_star.cpp +++ b/core/math/a_star.cpp @@ -585,11 +585,6 @@ void AStar::_bind_methods() {  	BIND_VMETHOD(MethodInfo(Variant::FLOAT, "_compute_cost", PropertyInfo(Variant::INT, "from_id"), PropertyInfo(Variant::INT, "to_id")));  } -AStar::AStar() { -	last_free_id = 0; -	pass = 1; -} -  AStar::~AStar() {  	clear();  } @@ -910,9 +905,3 @@ void AStar2D::_bind_methods() {  	BIND_VMETHOD(MethodInfo(Variant::FLOAT, "_estimate_cost", PropertyInfo(Variant::INT, "from_id"), PropertyInfo(Variant::INT, "to_id")));  	BIND_VMETHOD(MethodInfo(Variant::FLOAT, "_compute_cost", PropertyInfo(Variant::INT, "from_id"), PropertyInfo(Variant::INT, "to_id")));  } - -AStar2D::AStar2D() { -} - -AStar2D::~AStar2D() { -} diff --git a/core/math/a_star.h b/core/math/a_star.h index 8c10ace33c..ffb437ee04 100644 --- a/core/math/a_star.h +++ b/core/math/a_star.h @@ -47,17 +47,15 @@ class AStar : public Reference {  	struct Point { -		Point() : -				neighbours(4u), -				unlinked_neighbours(4u) {} +		Point() {}  		int id;  		Vector3 pos;  		real_t weight_scale;  		bool enabled; -		OAHashMap<int, Point *> neighbours; -		OAHashMap<int, Point *> unlinked_neighbours; +		OAHashMap<int, Point *> neighbours = 4u; +		OAHashMap<int, Point *> unlinked_neighbours = 4u;  		// Used for pathfinding.  		Point *prev_point; @@ -85,7 +83,7 @@ class AStar : public Reference {  				int32_t u;  				int32_t v;  			}; -			uint64_t key; +			uint64_t key = 0;  		};  		enum { @@ -94,13 +92,11 @@ class AStar : public Reference {  			BACKWARD = 2,  			BIDIRECTIONAL = FORWARD | BACKWARD  		}; -		unsigned char direction; +		unsigned char direction = NONE;  		bool operator<(const Segment &p_s) const { return key < p_s.key; } -		Segment() { -			key = 0; -			direction = NONE; -		} + +		Segment() {}  		Segment(int p_from, int p_to) {  			if (p_from < p_to) {  				u = p_from; @@ -114,8 +110,8 @@ class AStar : public Reference {  		}  	}; -	int last_free_id; -	uint64_t pass; +	int last_free_id = 0; +	uint64_t pass = 1;  	OAHashMap<int, Point *> points;  	Set<Segment> segments; @@ -159,7 +155,7 @@ public:  	Vector<Vector3> get_point_path(int p_from_id, int p_to_id);  	Vector<int> get_id_path(int p_from_id, int p_to_id); -	AStar(); +	AStar() {}  	~AStar();  }; @@ -206,8 +202,8 @@ public:  	Vector<Vector2> get_point_path(int p_from_id, int p_to_id);  	Vector<int> get_id_path(int p_from_id, int p_to_id); -	AStar2D(); -	~AStar2D(); +	AStar2D() {} +	~AStar2D() {}  };  #endif // A_STAR_H diff --git a/core/math/audio_frame.cpp b/core/math/audio_frame.cpp deleted file mode 100644 index c565ea9b13..0000000000 --- a/core/math/audio_frame.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/*************************************************************************/ -/*  audio_frame.cpp                                                      */ -/*************************************************************************/ -/*                       This file is part of:                           */ -/*                           GODOT ENGINE                                */ -/*                      https://godotengine.org                          */ -/*************************************************************************/ -/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur.                 */ -/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).   */ -/*                                                                       */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the       */ -/* "Software"), to deal in the Software without restriction, including   */ -/* without limitation the rights to use, copy, modify, merge, publish,   */ -/* distribute, sublicense, and/or sell copies of the Software, and to    */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions:                                             */ -/*                                                                       */ -/* The above copyright notice and this permission notice shall be        */ -/* included in all copies or substantial portions of the Software.       */ -/*                                                                       */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */ -/*************************************************************************/ - -#include "audio_frame.h" diff --git a/core/math/delaunay_2d.h b/core/math/delaunay_2d.h index b8252e9d16..66b2f8f573 100644 --- a/core/math/delaunay_2d.h +++ b/core/math/delaunay_2d.h @@ -36,24 +36,21 @@  class Delaunay2D {  public:  	struct Triangle { -  		int points[3]; -		bool bad; -		Triangle() { bad = false; } +		bool bad = false; +		Triangle() {}  		Triangle(int p_a, int p_b, int p_c) {  			points[0] = p_a;  			points[1] = p_b;  			points[2] = p_c; -			bad = false;  		}  	};  	struct Edge {  		int edge[2]; -		bool bad; -		Edge() { bad = false; } +		bool bad = false; +		Edge() {}  		Edge(int p_a, int p_b) { -			bad = false;  			edge[0] = p_a;  			edge[1] = p_b;  		} diff --git a/core/math/delaunay_3d.h b/core/math/delaunay_3d.h index 57f3a78d35..ab0993abc9 100644 --- a/core/math/delaunay_3d.h +++ b/core/math/delaunay_3d.h @@ -45,12 +45,12 @@ class Delaunay3D {  	struct Triangle {  		uint32_t triangle[3]; -		bool bad; +		bool bad = false;  		_FORCE_INLINE_ bool operator==(const Triangle &p_triangle) const {  			return triangle[0] == p_triangle.triangle[0] && triangle[1] == p_triangle.triangle[1] && triangle[2] == p_triangle.triangle[2];  		} -		_FORCE_INLINE_ Triangle() { bad = false; } +		_FORCE_INLINE_ Triangle() {}  		_FORCE_INLINE_ Triangle(uint32_t p_a, uint32_t p_b, uint32_t p_c) {  			if (p_a > p_b)  				SWAP(p_a, p_b); @@ -59,7 +59,6 @@ class Delaunay3D {  			if (p_a > p_b)  				SWAP(p_a, p_b); -			bad = false;  			triangle[0] = p_a;  			triangle[1] = p_b;  			triangle[2] = p_c; @@ -74,9 +73,6 @@ class Delaunay3D {  		}  	}; -	struct FPVal { -	}; -  	_FORCE_INLINE_ static void circum_sphere_compute(const Vector3 *p_points, Simplex *p_simplex) {  		// the only part in the algorithm where there may be precision errors is this one, so ensure that diff --git a/core/math/disjoint_set.cpp b/core/math/disjoint_set.cpp deleted file mode 100644 index a508151ad3..0000000000 --- a/core/math/disjoint_set.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/*************************************************************************/ -/*  disjoint_set.cpp                                                     */ -/*************************************************************************/ -/*                       This file is part of:                           */ -/*                           GODOT ENGINE                                */ -/*                      https://godotengine.org                          */ -/*************************************************************************/ -/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur.                 */ -/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).   */ -/*                                                                       */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the       */ -/* "Software"), to deal in the Software without restriction, including   */ -/* without limitation the rights to use, copy, modify, merge, publish,   */ -/* distribute, sublicense, and/or sell copies of the Software, and to    */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions:                                             */ -/*                                                                       */ -/* The above copyright notice and this permission notice shall be        */ -/* included in all copies or substantial portions of the Software.       */ -/*                                                                       */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */ -/*************************************************************************/ - -#include "disjoint_set.h" diff --git a/core/math/expression.cpp b/core/math/expression.cpp index f7a124eae3..c43831ddee 100644 --- a/core/math/expression.cpp +++ b/core/math/expression.cpp @@ -2298,17 +2298,6 @@ void Expression::_bind_methods() {  	ClassDB::bind_method(D_METHOD("get_error_text"), &Expression::get_error_text);  } -Expression::Expression() : -		output_type(Variant::NIL), -		sequenced(false), -		error_set(true), -		root(nullptr), -		nodes(nullptr), -		execution_error(false) { -	str_ofs = 0; -	expression_dirty = false; -} -  Expression::~Expression() {  	if (nodes) { diff --git a/core/math/expression.h b/core/math/expression.h index 78de225ebf..bf710ecdd5 100644 --- a/core/math/expression.h +++ b/core/math/expression.h @@ -119,22 +119,20 @@ private:  	struct Input { -		Variant::Type type; +		Variant::Type type = Variant::NIL;  		String name; -		Input() : -				type(Variant::NIL) { -		} +		Input() {}  	};  	Vector<Input> inputs; -	Variant::Type output_type; +	Variant::Type output_type = Variant::NIL;  	String expression; -	bool sequenced; -	int str_ofs; -	bool expression_dirty; +	bool sequenced = false; +	int str_ofs = 0; +	bool expression_dirty = false;  	bool _compile_expression(); @@ -197,7 +195,7 @@ private:  	Error _get_token(Token &r_token);  	String error_str; -	bool error_set; +	bool error_set = true;  	struct ENode { @@ -215,11 +213,11 @@ private:  			TYPE_CALL  		}; -		ENode *next; +		ENode *next = nullptr;  		Type type; -		ENode() { next = nullptr; } +		ENode() {}  		virtual ~ENode() {  			if (next) {  				memdelete(next); @@ -339,12 +337,12 @@ private:  		return node;  	} -	ENode *root; -	ENode *nodes; +	ENode *root = nullptr; +	ENode *nodes = nullptr;  	Vector<String> input_names; -	bool execution_error; +	bool execution_error = false;  	bool _execute(const Array &p_inputs, Object *p_instance, Expression::ENode *p_node, Variant &r_ret, String &r_error_str);  protected: @@ -356,7 +354,7 @@ public:  	bool has_execute_failed() const;  	String get_error_text() const; -	Expression(); +	Expression() {}  	~Expression();  }; diff --git a/core/math/geometry.cpp b/core/math/geometry.cpp index b0a46036f9..f923b62542 100644 --- a/core/math/geometry.cpp +++ b/core/math/geometry.cpp @@ -104,25 +104,19 @@ struct _FaceClassify {  	struct _Link { -		int face; -		int edge; +		int face = -1; +		int edge = -1;  		void clear() {  			face = -1;  			edge = -1;  		} -		_Link() { -			face = -1; -			edge = -1; -		} +		_Link() {}  	}; -	bool valid; -	int group; +	bool valid = false; +	int group = -1;  	_Link links[3];  	Face3 face; -	_FaceClassify() { -		group = -1; -		valid = false; -	}; +	_FaceClassify() {}  };  static bool _connect_faces(_FaceClassify *p_faces, int len, int p_group) { diff --git a/core/math/octree.h b/core/math/octree.h index ffb405bd0f..7d89c50f69 100644 --- a/core/math/octree.h +++ b/core/math/octree.h @@ -52,7 +52,6 @@ public:  private:  	enum { -  		NEG = 0,  		POS = 1,  	}; @@ -106,49 +105,35 @@ private:  		// cached for FAST plane check  		AABB aabb; -		uint64_t last_pass; -		Octant *parent; -		Octant *children[8]; +		uint64_t last_pass = 0; +		Octant *parent = nullptr; +		Octant *children[8] = { nullptr }; -		int children_count; // cache for amount of childrens (fast check for removal) -		int parent_index; // cache for parent index (fast check for removal) +		int children_count = 0; // cache for amount of childrens (fast check for removal) +		int parent_index = -1; // cache for parent index (fast check for removal)  		List<Element *, AL> pairable_elements;  		List<Element *, AL> elements; -		Octant() { -			children_count = 0; -			parent_index = -1; -			last_pass = 0; -			parent = nullptr; -			for (int i = 0; i < 8; i++) -				children[i] = nullptr; -		} - -		~Octant() { - -			/* -			for (int i=0;i<8;i++) -				memdelete_notnull(children[i]); -			*/ -		} +		Octant() {} +		~Octant() {}  	};  	struct PairData;  	struct Element { -		Octree *octree; +		Octree *octree = nullptr; -		T *userdata; -		int subindex; -		bool pairable; -		uint32_t pairable_mask; -		uint32_t pairable_type; +		T *userdata = nullptr; +		int subindex = 0; +		bool pairable = false; +		uint32_t pairable_mask = 0; +		uint32_t pairable_type = 0; -		uint64_t last_pass; -		OctreeElementID _id; -		Octant *common_parent; +		uint64_t last_pass = 0; +		OctreeElementID _id = 0; +		Octant *common_parent = nullptr;  		AABB aabb;  		AABB container_aabb; @@ -163,17 +148,7 @@ private:  		List<OctantOwner, AL> octant_owners; -		Element() { -			last_pass = 0; -			_id = 0; -			pairable = false; -			subindex = 0; -			userdata = 0; -			octree = 0; -			pairable_mask = 0; -			pairable_type = 0; -			common_parent = nullptr; -		} +		Element() {}  	};  	struct PairData { diff --git a/core/math/plane.h b/core/math/plane.h index d4f23ff2b6..f91f816556 100644 --- a/core/math/plane.h +++ b/core/math/plane.h @@ -36,7 +36,7 @@  class Plane {  public:  	Vector3 normal; -	real_t d; +	real_t d = 0;  	void set_normal(const Vector3 &p_normal);  	_FORCE_INLINE_ Vector3 get_normal() const { return normal; }; ///Point is coplanar, CMP_EPSILON for precision @@ -75,8 +75,7 @@ public:  	_FORCE_INLINE_ bool operator!=(const Plane &p_plane) const;  	operator String() const; -	_FORCE_INLINE_ Plane() : -			d(0) {} +	_FORCE_INLINE_ Plane() {}  	_FORCE_INLINE_ Plane(real_t p_a, real_t p_b, real_t p_c, real_t p_d) :  			normal(p_a, p_b, p_c),  			d(p_d) {} diff --git a/core/math/quat.h b/core/math/quat.h index b3135ad1ca..1ca6fe7ce3 100644 --- a/core/math/quat.h +++ b/core/math/quat.h @@ -40,7 +40,7 @@  class Quat {  public: -	real_t x, y, z, w; +	real_t x = 0, y = 0, z = 0, w = 1;  	_FORCE_INLINE_ real_t length_squared() const;  	bool is_equal_approx(const Quat &p_quat) const; @@ -112,7 +112,9 @@ public:  		z = p_z;  		w = p_w;  	} -	inline Quat(real_t p_x, real_t p_y, real_t p_z, real_t p_w) : + +	_FORCE_INLINE_ Quat() {} +	_FORCE_INLINE_ Quat(real_t p_x, real_t p_y, real_t p_z, real_t p_w) :  			x(p_x),  			y(p_y),  			z(p_z), @@ -157,13 +159,6 @@ public:  			w = s * 0.5;  		}  	} - -	inline Quat() : -			x(0), -			y(0), -			z(0), -			w(1) { -	}  };  real_t Quat::dot(const Quat &q) const { diff --git a/core/math/quick_hull.h b/core/math/quick_hull.h index 173f919a73..89061ab415 100644 --- a/core/math/quick_hull.h +++ b/core/math/quick_hull.h @@ -75,18 +75,12 @@ public:  private:  	struct FaceConnect { -		List<Face>::Element *left, *right; -		FaceConnect() { -			left = nullptr; -			right = nullptr; -		} +		List<Face>::Element *left, *right = nullptr; +		FaceConnect() {}  	};  	struct RetFaceConnect { -		List<Geometry::MeshData::Face>::Element *left, *right; -		RetFaceConnect() { -			left = nullptr; -			right = nullptr; -		} +		List<Geometry::MeshData::Face>::Element *left, *right = nullptr; +		RetFaceConnect() {}  	};  public: diff --git a/core/math/random_number_generator.cpp b/core/math/random_number_generator.cpp index 1a1bffb562..67f4c0b14a 100644 --- a/core/math/random_number_generator.cpp +++ b/core/math/random_number_generator.cpp @@ -30,8 +30,6 @@  #include "random_number_generator.h" -RandomNumberGenerator::RandomNumberGenerator() {} -  void RandomNumberGenerator::_bind_methods() {  	ClassDB::bind_method(D_METHOD("set_seed", "seed"), &RandomNumberGenerator::set_seed);  	ClassDB::bind_method(D_METHOD("get_seed"), &RandomNumberGenerator::get_seed); diff --git a/core/math/random_number_generator.h b/core/math/random_number_generator.h index e7f188bb42..2b125433b3 100644 --- a/core/math/random_number_generator.h +++ b/core/math/random_number_generator.h @@ -65,7 +65,7 @@ public:  			return ret % (to - from + 1) + from;  	} -	RandomNumberGenerator(); +	RandomNumberGenerator() {}  };  #endif // RANDOM_NUMBER_GENERATOR_H diff --git a/core/math/rect2.h b/core/math/rect2.h index 30dbfdbbe5..a3f3634bfb 100644 --- a/core/math/rect2.h +++ b/core/math/rect2.h @@ -393,11 +393,12 @@ struct Rect2i {  	operator String() const { return String(position) + ", " + String(size); }  	operator Rect2() const { return Rect2(position, size); } + +	Rect2i() {}  	Rect2i(const Rect2 &p_r2) :  			position(p_r2.position),  			size(p_r2.size) {  	} -	Rect2i() {}  	Rect2i(int p_x, int p_y, int p_width, int p_height) :  			position(Point2(p_x, p_y)),  			size(Size2(p_width, p_height)) { diff --git a/core/math/vector2.h b/core/math/vector2.h index c0057f2543..5a3e6a0660 100644 --- a/core/math/vector2.h +++ b/core/math/vector2.h @@ -44,11 +44,11 @@ struct Vector2 {  	};  	union { -		real_t x; +		real_t x = 0;  		real_t width;  	};  	union { -		real_t y; +		real_t y = 0;  		real_t height;  	}; @@ -142,11 +142,11 @@ struct Vector2 {  	operator String() const { return String::num(x) + ", " + String::num(y); } +	_FORCE_INLINE_ Vector2() {}  	_FORCE_INLINE_ Vector2(real_t p_x, real_t p_y) {  		x = p_x;  		y = p_y;  	} -	_FORCE_INLINE_ Vector2() { x = y = 0; }  };  _FORCE_INLINE_ Vector2 Vector2::plane_project(real_t p_d, const Vector2 &p_vec) const { @@ -260,11 +260,11 @@ struct Vector2i {  	};  	union { -		int x; +		int x = 0;  		int width;  	};  	union { -		int y; +		int y = 0;  		int height;  	}; @@ -307,6 +307,8 @@ struct Vector2i {  	operator String() const { return String::num(x) + ", " + String::num(y); }  	operator Vector2() const { return Vector2(x, y); } + +	inline Vector2i() {}  	inline Vector2i(const Vector2 &p_vec2) {  		x = (int)p_vec2.x;  		y = (int)p_vec2.y; @@ -315,10 +317,6 @@ struct Vector2i {  		x = p_x;  		y = p_y;  	} -	inline Vector2i() { -		x = 0; -		y = 0; -	}  };  typedef Vector2i Size2i; diff --git a/core/math/vector3.h b/core/math/vector3.h index a5e9d09208..7131063e04 100644 --- a/core/math/vector3.h +++ b/core/math/vector3.h @@ -52,7 +52,7 @@ struct Vector3 {  			real_t z;  		}; -		real_t coord[3]; +		real_t coord[3] = { 0 };  	};  	_FORCE_INLINE_ const real_t &operator[](int p_axis) const { @@ -152,18 +152,17 @@ struct Vector3 {  		return Vector3i(x, y, z);  	} +	_FORCE_INLINE_ Vector3() {}  	_FORCE_INLINE_ Vector3(const Vector3i &p_ivec) {  		x = p_ivec.x;  		y = p_ivec.y;  		z = p_ivec.z;  	} -  	_FORCE_INLINE_ Vector3(real_t p_x, real_t p_y, real_t p_z) {  		x = p_x;  		y = p_y;  		z = p_z;  	} -	_FORCE_INLINE_ Vector3() { x = y = z = 0; }  };  Vector3 Vector3::cross(const Vector3 &p_b) const { diff --git a/core/math/vector3i.h b/core/math/vector3i.h index 6f9754d3b9..60e5b94c12 100644 --- a/core/math/vector3i.h +++ b/core/math/vector3i.h @@ -49,7 +49,7 @@ struct Vector3i {  			int32_t z;  		}; -		int32_t coord[3]; +		int32_t coord[3] = { 0 };  	};  	_FORCE_INLINE_ const int32_t &operator[](int p_axis) const { @@ -100,12 +100,12 @@ struct Vector3i {  	operator String() const; +	_FORCE_INLINE_ Vector3i() {}  	_FORCE_INLINE_ Vector3i(int32_t p_x, int32_t p_y, int32_t p_z) {  		x = p_x;  		y = p_y;  		z = p_z;  	} -	_FORCE_INLINE_ Vector3i() { x = y = z = 0; }  };  Vector3i Vector3i::abs() const { diff --git a/core/message_queue.cpp b/core/message_queue.cpp index 652c424492..ad4211f3da 100644 --- a/core/message_queue.cpp +++ b/core/message_queue.cpp @@ -345,10 +345,7 @@ MessageQueue::MessageQueue() {  	ERR_FAIL_COND_MSG(singleton != nullptr, "A MessageQueue singleton already exists.");  	singleton = this; -	flushing = false; -	buffer_end = 0; -	buffer_max_used = 0;  	buffer_size = GLOBAL_DEF_RST("memory/limits/message_queue/max_size_kb", DEFAULT_QUEUE_SIZE_KB);  	ProjectSettings::get_singleton()->set_custom_property_info("memory/limits/message_queue/max_size_kb", PropertyInfo(Variant::INT, "memory/limits/message_queue/max_size_kb", PROPERTY_HINT_RANGE, "1024,4096,1,or_greater"));  	buffer_size *= 1024; diff --git a/core/message_queue.h b/core/message_queue.h index 9ba748bb42..180e0ce362 100644 --- a/core/message_queue.h +++ b/core/message_queue.h @@ -63,15 +63,15 @@ class MessageQueue {  	};  	uint8_t *buffer; -	uint32_t buffer_end; -	uint32_t buffer_max_used; +	uint32_t buffer_end = 0; +	uint32_t buffer_max_used = 0;  	uint32_t buffer_size;  	void _call_function(const Callable &p_callable, const Variant *p_args, int p_argcount, bool p_show_error);  	static MessageQueue *singleton; -	bool flushing; +	bool flushing = false;  public:  	static MessageQueue *get_singleton(); diff --git a/core/method_bind.cpp b/core/method_bind.cpp index c513de9ca0..854e19cf8a 100644 --- a/core/method_bind.cpp +++ b/core/method_bind.cpp @@ -104,14 +104,6 @@ void MethodBind::_generate_argument_types(int p_count) {  MethodBind::MethodBind() {  	static int last_id = 0;  	method_id = last_id++; -	hint_flags = METHOD_FLAGS_DEFAULT; -	argument_count = 0; -	default_argument_count = 0; -#ifdef DEBUG_METHODS_ENABLED -	argument_types = nullptr; -#endif -	_const = false; -	_returns = false;  }  MethodBind::~MethodBind() { diff --git a/core/method_bind.h b/core/method_bind.h index b3d4f1bf9b..0092527a25 100644 --- a/core/method_bind.h +++ b/core/method_bind.h @@ -208,18 +208,18 @@ struct PtrToArg<wchar_t> {  class MethodBind {  	int method_id; -	uint32_t hint_flags; +	uint32_t hint_flags = METHOD_FLAGS_DEFAULT;  	StringName name;  	Vector<Variant> default_arguments; -	int default_argument_count; -	int argument_count; +	int default_argument_count = 0; +	int argument_count = 0; -	bool _const; -	bool _returns; +	bool _const = false; +	bool _returns = false;  protected:  #ifdef DEBUG_METHODS_ENABLED -	Variant::Type *argument_types; +	Variant::Type *argument_types = nullptr;  	Vector<StringName> arg_names;  #endif  	void _set_const(bool p_const); @@ -304,12 +304,11 @@ public:  	typedef Variant (T::*NativeCall)(const Variant **, int, Callable::CallError &);  protected: -	NativeCall call_method; +	NativeCall call_method = nullptr;  #ifdef DEBUG_METHODS_ENABLED -  	MethodInfo arguments; -  #endif +  public:  #ifdef DEBUG_METHODS_ENABLED @@ -384,7 +383,6 @@ public:  	virtual bool is_vararg() const { return true; }  	MethodBindVarArg() { -		call_method = nullptr;  		_set_returns(true);  	}  }; diff --git a/core/node_path.cpp b/core/node_path.cpp index 25f1b38346..f8001a354a 100644 --- a/core/node_path.cpp +++ b/core/node_path.cpp @@ -187,16 +187,6 @@ NodePath::operator String() const {  	return ret;  } -NodePath::NodePath(const NodePath &p_path) { - -	data = nullptr; - -	if (p_path.data && p_path.data->refcount.ref()) { - -		data = p_path.data; -	} -} -  Vector<StringName> NodePath::get_names() const {  	if (data) @@ -285,35 +275,8 @@ NodePath NodePath::get_as_property_path() const {  	}  } -NodePath::NodePath(const Vector<StringName> &p_path, bool p_absolute) { - -	data = nullptr; - -	if (p_path.size() == 0) -		return; - -	data = memnew(Data); -	data->refcount.init(); -	data->absolute = p_absolute; -	data->path = p_path; -	data->has_slashes = true; -	data->hash_cache_valid = false; -} - -NodePath::NodePath(const Vector<StringName> &p_path, const Vector<StringName> &p_subpath, bool p_absolute) { - -	data = nullptr; - -	if (p_path.size() == 0 && p_subpath.size() == 0) -		return; - -	data = memnew(Data); -	data->refcount.init(); -	data->absolute = p_absolute; -	data->path = p_path; -	data->subpath = p_subpath; -	data->has_slashes = true; -	data->hash_cache_valid = false; +bool NodePath::is_empty() const { +	return !data;  }  void NodePath::simplify() { @@ -347,10 +310,38 @@ NodePath NodePath::simplified() const {  	return np;  } -NodePath::NodePath(const String &p_path) { +NodePath::NodePath(const Vector<StringName> &p_path, bool p_absolute) { +	if (p_path.size() == 0) +		return; -	data = nullptr; +	data = memnew(Data); +	data->refcount.init(); +	data->absolute = p_absolute; +	data->path = p_path; +	data->has_slashes = true; +	data->hash_cache_valid = false; +} + +NodePath::NodePath(const Vector<StringName> &p_path, const Vector<StringName> &p_subpath, bool p_absolute) { +	if (p_path.size() == 0 && p_subpath.size() == 0) +		return; +	data = memnew(Data); +	data->refcount.init(); +	data->absolute = p_absolute; +	data->path = p_path; +	data->subpath = p_subpath; +	data->has_slashes = true; +	data->hash_cache_valid = false; +} + +NodePath::NodePath(const NodePath &p_path) { +	if (p_path.data && p_path.data->refcount.ref()) { +		data = p_path.data; +	} +} + +NodePath::NodePath(const String &p_path) {  	if (p_path.length() == 0)  		return; @@ -437,16 +428,6 @@ NodePath::NodePath(const String &p_path) {  	}  } -bool NodePath::is_empty() const { - -	return !data; -} -NodePath::NodePath() { - -	data = nullptr; -} -  NodePath::~NodePath() { -  	unref();  } diff --git a/core/node_path.h b/core/node_path.h index 76de36cd9f..fb15d017bf 100644 --- a/core/node_path.h +++ b/core/node_path.h @@ -48,7 +48,7 @@ class NodePath {  		mutable uint32_t hash_cache;  	}; -	mutable Data *data; +	mutable Data *data = nullptr;  	void unref();  	void _update_hash_cache() const; @@ -93,7 +93,7 @@ public:  	NodePath(const Vector<StringName> &p_path, const Vector<StringName> &p_subpath, bool p_absolute);  	NodePath(const NodePath &p_path);  	NodePath(const String &p_path); -	NodePath(); +	NodePath() {}  	~NodePath();  }; diff --git a/core/oa_hash_map.h b/core/oa_hash_map.h index 71e3ba9068..f7c31f8aae 100644 --- a/core/oa_hash_map.h +++ b/core/oa_hash_map.h @@ -58,7 +58,7 @@ private:  	uint32_t capacity; -	uint32_t num_elements; +	uint32_t num_elements = 0;  	static const uint32_t EMPTY_HASH = 0; @@ -350,7 +350,6 @@ public:  	OAHashMap(uint32_t p_initial_capacity = 64) {  		capacity = p_initial_capacity; -		num_elements = 0;  		keys = memnew_arr(TKey, p_initial_capacity);  		values = memnew_arr(TValue, p_initial_capacity); diff --git a/core/object.cpp b/core/object.cpp index 94d957f3af..9ae2d2dcde 100644 --- a/core/object.cpp +++ b/core/object.cpp @@ -127,11 +127,6 @@ MethodInfo::operator Dictionary() const {  	return d;  } -MethodInfo::MethodInfo() : -		flags(METHOD_FLAG_NORMAL), -		id(0) { -} -  MethodInfo MethodInfo::from_dict(const Dictionary &p_dict) {  	MethodInfo mi; @@ -165,29 +160,28 @@ MethodInfo MethodInfo::from_dict(const Dictionary &p_dict) {  	return mi;  } +MethodInfo::MethodInfo() : +		flags(METHOD_FLAG_NORMAL) {} +  MethodInfo::MethodInfo(const String &p_name) :  		name(p_name), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  }  MethodInfo::MethodInfo(const String &p_name, const PropertyInfo &p_param1) :  		name(p_name), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  	arguments.push_back(p_param1);  }  MethodInfo::MethodInfo(const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2) :  		name(p_name), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  	arguments.push_back(p_param1);  	arguments.push_back(p_param2);  }  MethodInfo::MethodInfo(const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3) :  		name(p_name), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  	arguments.push_back(p_param1);  	arguments.push_back(p_param2);  	arguments.push_back(p_param3); @@ -195,8 +189,7 @@ MethodInfo::MethodInfo(const String &p_name, const PropertyInfo &p_param1, const  MethodInfo::MethodInfo(const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4) :  		name(p_name), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  	arguments.push_back(p_param1);  	arguments.push_back(p_param2);  	arguments.push_back(p_param3); @@ -205,8 +198,7 @@ MethodInfo::MethodInfo(const String &p_name, const PropertyInfo &p_param1, const  MethodInfo::MethodInfo(const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4, const PropertyInfo &p_param5) :  		name(p_name), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  	arguments.push_back(p_param1);  	arguments.push_back(p_param2);  	arguments.push_back(p_param3); @@ -215,28 +207,24 @@ MethodInfo::MethodInfo(const String &p_name, const PropertyInfo &p_param1, const  }  MethodInfo::MethodInfo(Variant::Type ret) : -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  	return_val.type = ret;  }  MethodInfo::MethodInfo(Variant::Type ret, const String &p_name) :  		name(p_name), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  	return_val.type = ret;  }  MethodInfo::MethodInfo(Variant::Type ret, const String &p_name, const PropertyInfo &p_param1) :  		name(p_name), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  	return_val.type = ret;  	arguments.push_back(p_param1);  }  MethodInfo::MethodInfo(Variant::Type ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2) :  		name(p_name), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  	return_val.type = ret;  	arguments.push_back(p_param1);  	arguments.push_back(p_param2); @@ -244,8 +232,7 @@ MethodInfo::MethodInfo(Variant::Type ret, const String &p_name, const PropertyIn  MethodInfo::MethodInfo(Variant::Type ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3) :  		name(p_name), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  	return_val.type = ret;  	arguments.push_back(p_param1);  	arguments.push_back(p_param2); @@ -254,8 +241,7 @@ MethodInfo::MethodInfo(Variant::Type ret, const String &p_name, const PropertyIn  MethodInfo::MethodInfo(Variant::Type ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4) :  		name(p_name), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  	return_val.type = ret;  	arguments.push_back(p_param1);  	arguments.push_back(p_param2); @@ -265,8 +251,7 @@ MethodInfo::MethodInfo(Variant::Type ret, const String &p_name, const PropertyIn  MethodInfo::MethodInfo(Variant::Type ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4, const PropertyInfo &p_param5) :  		name(p_name), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  	return_val.type = ret;  	arguments.push_back(p_param1);  	arguments.push_back(p_param2); @@ -278,23 +263,20 @@ MethodInfo::MethodInfo(Variant::Type ret, const String &p_name, const PropertyIn  MethodInfo::MethodInfo(const PropertyInfo &p_ret, const String &p_name) :  		name(p_name),  		return_val(p_ret), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  }  MethodInfo::MethodInfo(const PropertyInfo &p_ret, const String &p_name, const PropertyInfo &p_param1) :  		name(p_name),  		return_val(p_ret), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  	arguments.push_back(p_param1);  }  MethodInfo::MethodInfo(const PropertyInfo &p_ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2) :  		name(p_name),  		return_val(p_ret), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  	arguments.push_back(p_param1);  	arguments.push_back(p_param2);  } @@ -302,8 +284,7 @@ MethodInfo::MethodInfo(const PropertyInfo &p_ret, const String &p_name, const Pr  MethodInfo::MethodInfo(const PropertyInfo &p_ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3) :  		name(p_name),  		return_val(p_ret), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  	arguments.push_back(p_param1);  	arguments.push_back(p_param2);  	arguments.push_back(p_param3); @@ -312,8 +293,7 @@ MethodInfo::MethodInfo(const PropertyInfo &p_ret, const String &p_name, const Pr  MethodInfo::MethodInfo(const PropertyInfo &p_ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4) :  		name(p_name),  		return_val(p_ret), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  	arguments.push_back(p_param1);  	arguments.push_back(p_param2);  	arguments.push_back(p_param3); @@ -323,8 +303,7 @@ MethodInfo::MethodInfo(const PropertyInfo &p_ret, const String &p_name, const Pr  MethodInfo::MethodInfo(const PropertyInfo &p_ret, const String &p_name, const PropertyInfo &p_param1, const PropertyInfo &p_param2, const PropertyInfo &p_param3, const PropertyInfo &p_param4, const PropertyInfo &p_param5) :  		name(p_name),  		return_val(p_ret), -		flags(METHOD_FLAG_NORMAL), -		id(0) { +		flags(METHOD_FLAG_NORMAL) {  	arguments.push_back(p_param1);  	arguments.push_back(p_param2);  	arguments.push_back(p_param3); @@ -1923,32 +1902,19 @@ void Object::set_script_instance_binding(int p_script_language_index, void *p_da  void Object::_construct_object(bool p_reference) {  	type_is_reference = p_reference; -	_class_ptr = nullptr; -	_block_signals = false; -	_predelete_ok = 0;  	_instance_id = ObjectDB::add_instance(this); -	_can_translate = true; -	_is_queued_for_deletion = false; -	_emitting = false; -	instance_binding_count = 0;  	memset(_script_instance_bindings, 0, sizeof(void *) * MAX_SCRIPT_INSTANCE_BINDINGS); -	script_instance = nullptr; -#ifdef TOOLS_ENABLED - -	_edited = false; -	_edited_version = 0; -#endif  #ifdef DEBUG_ENABLED  	_lock_index.init(1);  #endif  } +  Object::Object(bool p_reference) {  	_construct_object(p_reference);  }  Object::Object() { -  	_construct_object(false);  } diff --git a/core/object.h b/core/object.h index 3dec8a0480..20defae095 100644 --- a/core/object.h +++ b/core/object.h @@ -139,12 +139,12 @@ enum PropertyUsageFlags {  struct PropertyInfo { -	Variant::Type type; +	Variant::Type type = Variant::NIL;  	String name;  	StringName class_name; //for classes -	PropertyHint hint; +	PropertyHint hint = PROPERTY_HINT_NONE;  	String hint_string; -	uint32_t usage; +	uint32_t usage = PROPERTY_USAGE_DEFAULT;  	_FORCE_INLINE_ PropertyInfo added_usage(int p_fl) const {  		PropertyInfo pi = *this; @@ -156,11 +156,7 @@ struct PropertyInfo {  	static PropertyInfo from_dict(const Dictionary &p_dict); -	PropertyInfo() : -			type(Variant::NIL), -			hint(PROPERTY_HINT_NONE), -			usage(PROPERTY_USAGE_DEFAULT) { -	} +	PropertyInfo() {}  	PropertyInfo(Variant::Type p_type, const String p_name, PropertyHint p_hint = PROPERTY_HINT_NONE, const String &p_hint_string = "", uint32_t p_usage = PROPERTY_USAGE_DEFAULT, const StringName &p_class_name = StringName()) :  			type(p_type), @@ -178,10 +174,7 @@ struct PropertyInfo {  	PropertyInfo(const StringName &p_class_name) :  			type(Variant::OBJECT), -			class_name(p_class_name), -			hint(PROPERTY_HINT_NONE), -			usage(PROPERTY_USAGE_DEFAULT) { -	} +			class_name(p_class_name) {}  	bool operator==(const PropertyInfo &p_info) const {  		return ((type == p_info.type) && @@ -203,8 +196,8 @@ struct MethodInfo {  	String name;  	PropertyInfo return_val; -	uint32_t flags; -	int id; +	uint32_t flags; // NOLINT - prevent clang-tidy to assign method_bind.h constant here, it should stay in .cpp. +	int id = 0;  	List<PropertyInfo> arguments;  	Vector<Variant> default_arguments; @@ -214,6 +207,7 @@ struct MethodInfo {  	operator Dictionary() const;  	static MethodInfo from_dict(const Dictionary &p_dict); +  	MethodInfo();  	MethodInfo(const String &p_name);  	MethodInfo(const String &p_name, const PropertyInfo &p_param1); @@ -416,14 +410,13 @@ public:  		::Signal signal;  		Callable callable; -		uint32_t flags; +		uint32_t flags = 0;  		Vector<Variant> binds;  		bool operator<(const Connection &p_conn) const;  		operator Variant() const; -		Connection() { -			flags = 0; -		} + +		Connection() {}  		Connection(const Variant &p_variant);  	}; @@ -441,16 +434,13 @@ private:  	struct SignalData {  		struct Slot { - -			int reference_count; +			int reference_count = 0;  			Connection conn; -			List<Connection>::Element *cE; -			Slot() { reference_count = 0; } +			List<Connection>::Element *cE = nullptr;  		};  		MethodInfo user;  		VMap<Callable, Slot> slot_map; -		SignalData() {}  	};  	HashMap<StringName, SignalData> signal_map; @@ -458,24 +448,24 @@ private:  #ifdef DEBUG_ENABLED  	SafeRefCount _lock_index;  #endif -	bool _block_signals; -	int _predelete_ok; +	bool _block_signals = false; +	int _predelete_ok = 0;  	Set<Object *> change_receptors;  	ObjectID _instance_id;  	bool _predelete();  	void _postinitialize(); -	bool _can_translate; -	bool _emitting; +	bool _can_translate = true; +	bool _emitting = false;  #ifdef TOOLS_ENABLED -	bool _edited; -	uint32_t _edited_version; +	bool _edited = false; +	uint32_t _edited_version = 0;  	Set<String> editor_section_folding;  #endif -	ScriptInstance *script_instance; +	ScriptInstance *script_instance = nullptr;  	Variant script; //reference does not yet exist, store it in a  	Dictionary metadata;  	mutable StringName _class_name; -	mutable const StringName *_class_ptr; +	mutable const StringName *_class_ptr = nullptr;  	void _add_user_signal(const String &p_name, const Array &p_args = Array());  	bool _has_user_signal(const StringName &p_name) const; @@ -494,8 +484,9 @@ private:  	friend class Reference;  	bool type_is_reference = false; -	uint32_t instance_binding_count; +	uint32_t instance_binding_count = 0;  	void *_script_instance_bindings[MAX_SCRIPT_INSTANCE_BINDINGS]; +  	Object(bool p_reference);  protected: @@ -503,14 +494,14 @@ protected:  	virtual bool _setv(const StringName &p_name, const Variant &p_property) { return false; };  	virtual bool _getv(const StringName &p_name, Variant &r_property) const { return false; };  	virtual void _get_property_listv(List<PropertyInfo> *p_list, bool p_reversed) const {}; -	virtual void _notificationv(int p_notification, bool p_reversed){}; +	virtual void _notificationv(int p_notification, bool p_reversed) {}  	static String _get_category() { return ""; }  	static void _bind_methods();  	bool _set(const StringName &p_name, const Variant &p_property) { return false; };  	bool _get(const StringName &p_name, Variant &r_property) const { return false; };  	void _get_property_list(List<PropertyInfo> *p_list) const {}; -	void _notification(int p_notification){}; +	void _notification(int p_notification) {}  	_FORCE_INLINE_ static void (*_get_bind_methods())() {  		return &Object::_bind_methods; @@ -559,7 +550,7 @@ protected:  public: //should be protected, but bug in clang++  	static void initialize_class(); -	_FORCE_INLINE_ static void register_custom_data_to_otdb(){}; +	_FORCE_INLINE_ static void register_custom_data_to_otdb() {}  public:  #ifdef TOOLS_ENABLED @@ -579,8 +570,8 @@ public:  	bool _is_gpl_reversed() const { return false; }  	_FORCE_INLINE_ ObjectID get_instance_id() const { return _instance_id; } -	// this is used for editors +	// this is used for editors  	void add_change_receptor(Object *p_receptor);  	void remove_change_receptor(Object *p_receptor); @@ -613,7 +604,6 @@ public:  	}  	enum { -  		NOTIFICATION_POSTINITIALIZE = 0,  		NOTIFICATION_PREDELETE = 1  	}; @@ -723,7 +713,7 @@ public:  	StringName tr(const StringName &p_message) const; // translate message (internationalization) -	bool _is_queued_for_deletion; // set to true by SceneTree::queue_delete() +	bool _is_queued_for_deletion = false; // set to true by SceneTree::queue_delete()  	bool is_queued_for_deletion() const;  	_FORCE_INLINE_ void set_message_translation(bool p_enable) { _can_translate = p_enable; } @@ -745,6 +735,7 @@ public:  	void clear_internal_resource_paths();  	_ALWAYS_INLINE_ bool is_reference() const { return type_is_reference; } +  	Object();  	virtual ~Object();  }; diff --git a/core/ordered_hash_map.h b/core/ordered_hash_map.h index 05debd529f..1f1be71741 100644 --- a/core/ordered_hash_map.h +++ b/core/ordered_hash_map.h @@ -55,9 +55,9 @@ public:  	class Element {  		friend class OrderedHashMap<K, V, Hasher, Comparator, MIN_HASH_TABLE_POWER, RELATIONSHIP>; -		typename InternalList::Element *list_element; -		typename InternalList::Element *prev_element; -		typename InternalList::Element *next_element; +		typename InternalList::Element *list_element = nullptr; +		typename InternalList::Element *prev_element = nullptr; +		typename InternalList::Element *next_element = nullptr;  		Element(typename InternalList::Element *p_element) {  			list_element = p_element; @@ -69,11 +69,7 @@ public:  		}  	public: -		_FORCE_INLINE_ Element() : -				list_element(nullptr), -				prev_element(nullptr), -				next_element(nullptr) { -		} +		_FORCE_INLINE_ Element() {}  		Element next() const {  			return Element(next_element); @@ -136,16 +132,14 @@ public:  	class ConstElement {  		friend class OrderedHashMap<K, V, Hasher, Comparator, MIN_HASH_TABLE_POWER, RELATIONSHIP>; -		const typename InternalList::Element *list_element; +		const typename InternalList::Element *list_element = nullptr;  		ConstElement(const typename InternalList::Element *p_element) :  				list_element(p_element) {  		}  	public: -		_FORCE_INLINE_ ConstElement() : -				list_element(nullptr) { -		} +		_FORCE_INLINE_ ConstElement() {}  		ConstElement(const ConstElement &other) :  				list_element(other.list_element) { @@ -299,8 +293,7 @@ public:  		_copy_from(p_map);  	} -	_FORCE_INLINE_ OrderedHashMap() { -	} +	_FORCE_INLINE_ OrderedHashMap() {}  };  #endif // ORDERED_HASH_MAP_H diff --git a/core/os/dir_access.cpp b/core/os/dir_access.cpp index b26cd46fd8..53b959a580 100644 --- a/core/os/dir_access.cpp +++ b/core/os/dir_access.cpp @@ -446,11 +446,3 @@ bool DirAccess::exists(String p_dir) {  	memdelete(da);  	return valid;  } - -DirAccess::DirAccess() { - -	_access_type = ACCESS_FILESYSTEM; -} - -DirAccess::~DirAccess() { -} diff --git a/core/os/dir_access.h b/core/os/dir_access.h index 6c876cde5a..cac0d0ec7c 100644 --- a/core/os/dir_access.h +++ b/core/os/dir_access.h @@ -47,7 +47,7 @@ public:  	typedef DirAccess *(*CreateFunc)();  private: -	AccessType _access_type; +	AccessType _access_type = ACCESS_FILESYSTEM;  	static CreateFunc create_func[ACCESS_MAX]; ///< set this to instance a filesystem object  	Error _copy_dir(DirAccess *p_target_da, String p_to, int p_chmod_flags); @@ -110,16 +110,6 @@ public:  	static String get_full_path(const String &p_path, AccessType p_access);  	static DirAccess *create_for_path(const String &p_path); -	/* -	enum DirType { - -		FILE_TYPE_INVALID, -		FILE_TYPE_FILE, -		FILE_TYPE_DIR, -	}; - -	//virtual DirType get_file_type() const=0; -*/  	static DirAccess *create(AccessType p_access);  	template <class T> @@ -130,8 +120,8 @@ public:  	static DirAccess *open(const String &p_path, Error *r_error = nullptr); -	DirAccess(); -	virtual ~DirAccess(); +	DirAccess() {} +	virtual ~DirAccess() {}  };  struct DirAccessRef { @@ -142,7 +132,9 @@ struct DirAccessRef {  	}  	operator bool() const { return f != nullptr; } +  	DirAccess *f; +  	DirAccessRef(DirAccess *fa) { f = fa; }  	~DirAccessRef() {  		if (f) diff --git a/core/os/file_access.cpp b/core/os/file_access.cpp index 7055780f34..cb8705f706 100644 --- a/core/os/file_access.cpp +++ b/core/os/file_access.cpp @@ -278,7 +278,7 @@ class CharBuffer {  	char *buffer;  	int capacity; -	int written; +	int written = 0;  	bool grow() { @@ -305,8 +305,7 @@ class CharBuffer {  public:  	_FORCE_INLINE_ CharBuffer() :  			buffer(stack_buffer), -			capacity(sizeof(stack_buffer) / sizeof(char)), -			written(0) { +			capacity(sizeof(stack_buffer) / sizeof(char)) {  	}  	_FORCE_INLINE_ void push_back(char c) { @@ -716,10 +715,3 @@ String FileAccess::get_sha256(const String &p_file) {  	memdelete(f);  	return String::hex_encode_buffer(hash, 32);  } - -FileAccess::FileAccess() { - -	endian_swap = false; -	real_is_double = false; -	_access_type = ACCESS_FILESYSTEM; -}; diff --git a/core/os/file_access.h b/core/os/file_access.h index 0f85c447b6..0ee29abbc9 100644 --- a/core/os/file_access.h +++ b/core/os/file_access.h @@ -53,8 +53,8 @@ public:  	typedef void (*FileCloseFailNotify)(const String &);  	typedef FileAccess *(*CreateFunc)(); -	bool endian_swap; -	bool real_is_double; +	bool endian_swap = false; +	bool real_is_double = false;  	virtual uint32_t _get_unix_permissions(const String &p_file) = 0;  	virtual Error _set_unix_permissions(const String &p_file, uint32_t p_permissions) = 0; @@ -69,7 +69,7 @@ protected:  private:  	static bool backup_save; -	AccessType _access_type; +	AccessType _access_type = ACCESS_FILESYSTEM;  	static CreateFunc create_func[ACCESS_MAX]; /** default file access creation function for a platform */  	template <class T>  	static FileAccess *_create_builtin() { @@ -176,7 +176,7 @@ public:  		create_func[p_access] = _create_builtin<T>;  	} -	FileAccess(); +	FileAccess() {}  	virtual ~FileAccess() {}  }; @@ -188,8 +188,11 @@ struct FileAccessRef {  	}  	operator bool() const { return f != nullptr; } +  	FileAccess *f; +  	operator FileAccess *() { return f; } +  	FileAccessRef(FileAccess *fa) { f = fa; }  	~FileAccessRef() {  		if (f) diff --git a/core/os/main_loop.cpp b/core/os/main_loop.cpp index 0d1a080682..b29e3f6142 100644 --- a/core/os/main_loop.cpp +++ b/core/os/main_loop.cpp @@ -60,12 +60,6 @@ void MainLoop::set_init_script(const Ref<Script> &p_init_script) {  	init_script = p_init_script;  } -MainLoop::MainLoop() { -} - -MainLoop::~MainLoop() { -} -  void MainLoop::init() {  	if (init_script.is_valid()) diff --git a/core/os/main_loop.h b/core/os/main_loop.h index 8f6c8c91b1..c7cc8f01e0 100644 --- a/core/os/main_loop.h +++ b/core/os/main_loop.h @@ -64,8 +64,8 @@ public:  	void set_init_script(const Ref<Script> &p_init_script); -	MainLoop(); -	virtual ~MainLoop(); +	MainLoop() {} +	virtual ~MainLoop() {}  };  #endif // MAIN_LOOP_H diff --git a/core/os/memory.cpp b/core/os/memory.cpp index d921c10ad4..0e48592cc1 100644 --- a/core/os/memory.cpp +++ b/core/os/memory.cpp @@ -204,8 +204,6 @@ uint64_t Memory::get_mem_max_usage() {  }  _GlobalNil::_GlobalNil() { - -	color = 1;  	left = this;  	right = this;  	parent = this; diff --git a/core/os/memory.h b/core/os/memory.h index d377d54fad..0588e47289 100644 --- a/core/os/memory.h +++ b/core/os/memory.h @@ -194,7 +194,7 @@ void memdelete_arr(T *p_class) {  struct _GlobalNil { -	int color; +	int color = 1;  	_GlobalNil *right;  	_GlobalNil *left;  	_GlobalNil *parent; diff --git a/core/os/mutex.h b/core/os/mutex.h index 526549dd93..69a15f96de 100644 --- a/core/os/mutex.h +++ b/core/os/mutex.h @@ -83,7 +83,7 @@ extern template class MutexLock<MutexImpl<std::mutex>>;  class FakeMutex { -	FakeMutex(){}; +	FakeMutex() {}  };  template <class MutexT> diff --git a/core/os/os.cpp b/core/os/os.cpp index 425132fbec..cdc9f1e0ff 100644 --- a/core/os/os.cpp +++ b/core/os/os.cpp @@ -508,25 +508,10 @@ void OS::close_midi_inputs() {  OS::OS() {  	void *volatile stack_bottom; -	restart_on_exit = false;  	singleton = this; -	_keep_screen_on = true; // set default value to true, because this had been true before godot 2.0. -	low_processor_usage_mode = false; -	low_processor_usage_mode_sleep_usec = 10000; -	_verbose_stdout = false; -	_no_window = false; -	_exit_code = 0; -	_render_thread_mode = RENDER_THREAD_SAFE; - -	_allow_hidpi = false; -	_allow_layered = false;  	_stack_bottom = (void *)(&stack_bottom); -	_logger = nullptr; - -	has_server_feature_callback = nullptr; -  	Vector<Logger *> loggers;  	loggers.push_back(memnew(StdLogger));  	_set_logger(memnew(CompositeLogger(loggers))); diff --git a/core/os/os.h b/core/os/os.h index 38114e6814..4340823cf4 100644 --- a/core/os/os.h +++ b/core/os/os.h @@ -46,17 +46,17 @@ class OS {  	static OS *singleton;  	String _execpath;  	List<String> _cmdline; -	bool _keep_screen_on; -	bool low_processor_usage_mode; -	int low_processor_usage_mode_sleep_usec; -	bool _verbose_stdout; +	bool _keep_screen_on = true; // set default value to true, because this had been true before godot 2.0. +	bool low_processor_usage_mode = false; +	int low_processor_usage_mode_sleep_usec = 10000; +	bool _verbose_stdout = false;  	String _local_clipboard;  	uint64_t _msec_splash; -	bool _no_window; -	int _exit_code; +	bool _no_window = false; +	int _exit_code = 0;  	int _orientation; -	bool _allow_hidpi; -	bool _allow_layered; +	bool _allow_hidpi = false; +	bool _allow_layered = false;  	bool _use_vsync;  	bool _vsync_via_compositor;  	bool _disable_wintab; @@ -65,9 +65,9 @@ class OS {  	void *_stack_bottom; -	CompositeLogger *_logger; +	CompositeLogger *_logger = nullptr; -	bool restart_on_exit; +	bool restart_on_exit = false;  	List<String> restart_commandline;  protected: @@ -87,8 +87,8 @@ public:  protected:  	friend class Main; -	HasServerFeatureCallback has_server_feature_callback; -	RenderThreadMode _render_thread_mode; +	HasServerFeatureCallback has_server_feature_callback = nullptr; +	RenderThreadMode _render_thread_mode = RENDER_THREAD_SAFE;  	// functions used by main to initialize/deinitialize the OS  	void add_logger(Logger *p_logger); diff --git a/core/os/rw_lock.cpp b/core/os/rw_lock.cpp index 1dd2c3bccb..81df7f7ea6 100644 --- a/core/os/rw_lock.cpp +++ b/core/os/rw_lock.cpp @@ -42,6 +42,3 @@ RWLock *RWLock::create() {  	return create_func();  } - -RWLock::~RWLock() { -} diff --git a/core/os/rw_lock.h b/core/os/rw_lock.h index 2ef4df9b70..8dca8a230a 100644 --- a/core/os/rw_lock.h +++ b/core/os/rw_lock.h @@ -48,7 +48,7 @@ public:  	static RWLock *create(); ///< Create a rwlock -	virtual ~RWLock(); +	virtual ~RWLock() {}  };  class RWLockRead { diff --git a/core/os/semaphore.cpp b/core/os/semaphore.cpp deleted file mode 100644 index 93f1e2dff4..0000000000 --- a/core/os/semaphore.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/*************************************************************************/ -/*  semaphore.cpp                                                        */ -/*************************************************************************/ -/*                       This file is part of:                           */ -/*                           GODOT ENGINE                                */ -/*                      https://godotengine.org                          */ -/*************************************************************************/ -/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur.                 */ -/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).   */ -/*                                                                       */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the       */ -/* "Software"), to deal in the Software without restriction, including   */ -/* without limitation the rights to use, copy, modify, merge, publish,   */ -/* distribute, sublicense, and/or sell copies of the Software, and to    */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions:                                             */ -/*                                                                       */ -/* The above copyright notice and this permission notice shall be        */ -/* included in all copies or substantial portions of the Software.       */ -/*                                                                       */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */ -/*************************************************************************/ - -#include "semaphore.h" diff --git a/core/os/thread.cpp b/core/os/thread.cpp index 294b52f00c..a8eb0b2a9f 100644 --- a/core/os/thread.cpp +++ b/core/os/thread.cpp @@ -66,9 +66,3 @@ Error Thread::set_name(const String &p_name) {  	return ERR_UNAVAILABLE;  }; - -Thread::Thread() { -} - -Thread::~Thread() { -} diff --git a/core/os/thread.h b/core/os/thread.h index 76d296bcf7..005217dca7 100644 --- a/core/os/thread.h +++ b/core/os/thread.h @@ -63,7 +63,7 @@ protected:  	static ID _main_thread_id; -	Thread(); +	Thread() {}  public:  	virtual ID get_id() const = 0; @@ -74,7 +74,7 @@ public:  	static void wait_to_finish(Thread *p_thread); ///< waits until thread is finished, and deallocates it.  	static Thread *create(ThreadCreateCallback p_callback, void *p_user, const Settings &p_settings = Settings()); ///< Static function to create a thread, will call p_callback -	virtual ~Thread(); +	virtual ~Thread() {}  };  #endif // THREAD_H diff --git a/core/packed_data_container.cpp b/core/packed_data_container.cpp index 04deba2c14..17b5905a93 100644 --- a/core/packed_data_container.cpp +++ b/core/packed_data_container.cpp @@ -381,11 +381,6 @@ void PackedDataContainer::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::PACKED_BYTE_ARRAY, "__data__"), "_set_data", "_get_data");  } -PackedDataContainer::PackedDataContainer() { - -	datalen = 0; -} -  //////////////////  Variant PackedDataContainerRef::_iter_init(const Array &p_iter) { @@ -429,6 +424,3 @@ int PackedDataContainerRef::size() const {  	return from->_size(offset);  }; - -PackedDataContainerRef::PackedDataContainerRef() { -} diff --git a/core/packed_data_container.h b/core/packed_data_container.h index 0f08a1cb7b..00ec4248ee 100644 --- a/core/packed_data_container.h +++ b/core/packed_data_container.h @@ -49,7 +49,7 @@ class PackedDataContainer : public Resource {  	};  	Vector<uint8_t> data; -	int datalen; +	int datalen = 0;  	uint32_t _pack(const Variant &p_data, Vector<uint8_t> &tmpdata, Map<String, uint32_t> &string_cache); @@ -78,7 +78,7 @@ public:  	int size() const; -	PackedDataContainer(); +	PackedDataContainer() {}  };  class PackedDataContainerRef : public Reference { @@ -100,7 +100,7 @@ public:  	int size() const;  	virtual Variant getvar(const Variant &p_key, bool *r_valid = nullptr) const; -	PackedDataContainerRef(); +	PackedDataContainerRef() {}  };  #endif // PACKED_DATA_CONTAINER_H diff --git a/core/path_remap.cpp b/core/path_remap.cpp deleted file mode 100644 index e1708e0350..0000000000 --- a/core/path_remap.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/*************************************************************************/ -/*  path_remap.cpp                                                       */ -/*************************************************************************/ -/*                       This file is part of:                           */ -/*                           GODOT ENGINE                                */ -/*                      https://godotengine.org                          */ -/*************************************************************************/ -/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur.                 */ -/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).   */ -/*                                                                       */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the       */ -/* "Software"), to deal in the Software without restriction, including   */ -/* without limitation the rights to use, copy, modify, merge, publish,   */ -/* distribute, sublicense, and/or sell copies of the Software, and to    */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions:                                             */ -/*                                                                       */ -/* The above copyright notice and this permission notice shall be        */ -/* included in all copies or substantial portions of the Software.       */ -/*                                                                       */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */ -/*************************************************************************/ - -#include "path_remap.h" diff --git a/core/path_remap.h b/core/path_remap.h deleted file mode 100644 index 1580e88625..0000000000 --- a/core/path_remap.h +++ /dev/null @@ -1,34 +0,0 @@ -/*************************************************************************/ -/*  path_remap.h                                                         */ -/*************************************************************************/ -/*                       This file is part of:                           */ -/*                           GODOT ENGINE                                */ -/*                      https://godotengine.org                          */ -/*************************************************************************/ -/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur.                 */ -/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).   */ -/*                                                                       */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the       */ -/* "Software"), to deal in the Software without restriction, including   */ -/* without limitation the rights to use, copy, modify, merge, publish,   */ -/* distribute, sublicense, and/or sell copies of the Software, and to    */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions:                                             */ -/*                                                                       */ -/* The above copyright notice and this permission notice shall be        */ -/* included in all copies or substantial portions of the Software.       */ -/*                                                                       */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */ -/*************************************************************************/ - -#ifndef PATH_REMAP_H -#define PATH_REMAP_H - -#endif // PATH_REMAP_H diff --git a/core/pool_allocator.h b/core/pool_allocator.h index 8c1710ebe0..1cc21afb21 100644 --- a/core/pool_allocator.h +++ b/core/pool_allocator.h @@ -61,10 +61,10 @@ private:  	struct Entry { -		unsigned int pos; -		unsigned int len; -		unsigned int lock; -		unsigned int check; +		unsigned int pos = 0; +		unsigned int len = 0; +		unsigned int lock = 0; +		unsigned int check = 0;  		inline void clear() {  			pos = 0; @@ -72,7 +72,7 @@ private:  			lock = 0;  			check = 0;  		} -		Entry() { clear(); } +		Entry() {}  	};  	typedef int EntryArrayPos; diff --git a/core/print_string.h b/core/print_string.h index d83cc35dd6..3e9125bddc 100644 --- a/core/print_string.h +++ b/core/print_string.h @@ -39,16 +39,12 @@ typedef void (*PrintHandlerFunc)(void *, const String &p_string, bool p_error);  struct PrintHandlerList { -	PrintHandlerFunc printfunc; -	void *userdata; +	PrintHandlerFunc printfunc = nullptr; +	void *userdata = nullptr; -	PrintHandlerList *next; +	PrintHandlerList *next = nullptr; -	PrintHandlerList() { -		printfunc = 0; -		next = 0; -		userdata = 0; -	} +	PrintHandlerList() {}  };  void add_print_handler(PrintHandlerList *p_handler); diff --git a/core/project_settings.cpp b/core/project_settings.cpp index 12522281d0..e141e54e61 100644 --- a/core/project_settings.cpp +++ b/core/project_settings.cpp @@ -989,10 +989,6 @@ void ProjectSettings::_bind_methods() {  ProjectSettings::ProjectSettings() {  	singleton = this; -	last_order = NO_BUILTIN_ORDER_BASE; -	last_builtin_order = 0; -	disable_feature_overrides = false; -	registering_order = true;  	Array events;  	Dictionary action; @@ -1203,8 +1199,6 @@ ProjectSettings::ProjectSettings() {  	Compression::gzip_level = GLOBAL_DEF("compression/formats/gzip/compression_level", Z_DEFAULT_COMPRESSION);  	custom_prop_info["compression/formats/gzip/compression_level"] = PropertyInfo(Variant::INT, "compression/formats/gzip/compression_level", PROPERTY_HINT_RANGE, "-1,9,1"); - -	using_datapack = false;  }  ProjectSettings::~ProjectSettings() { diff --git a/core/project_settings.h b/core/project_settings.h index 7b3ca18c62..87f2a8273f 100644 --- a/core/project_settings.h +++ b/core/project_settings.h @@ -50,38 +50,31 @@ public:  protected:  	struct VariantContainer { -		int order; -		bool persist; +		int order = 0; +		bool persist = false;  		Variant variant;  		Variant initial; -		bool hide_from_editor; -		bool overridden; -		bool restart_if_changed; -		VariantContainer() : -				order(0), -				persist(false), -				hide_from_editor(false), -				overridden(false), -				restart_if_changed(false) { -		} +		bool hide_from_editor = false; +		bool overridden = false; +		bool restart_if_changed = false; + +		VariantContainer() {} +  		VariantContainer(const Variant &p_variant, int p_order, bool p_persist = false) :  				order(p_order),  				persist(p_persist), -				variant(p_variant), -				hide_from_editor(false), -				overridden(false), -				restart_if_changed(false) { +				variant(p_variant) {  		}  	}; -	bool registering_order; -	int last_order; -	int last_builtin_order; +	bool registering_order = true; +	int last_order = 0; +	int last_builtin_order = NO_BUILTIN_ORDER_BASE;  	Map<StringName, VariantContainer> props;  	String resource_path;  	Map<StringName, PropertyInfo> custom_prop_info; -	bool disable_feature_overrides; -	bool using_datapack; +	bool disable_feature_overrides = false; +	bool using_datapack = false;  	List<String> input_presets;  	Set<String> custom_features; diff --git a/core/reference.cpp b/core/reference.cpp index dd65ccce69..57b72dcaad 100644 --- a/core/reference.cpp +++ b/core/reference.cpp @@ -109,9 +109,6 @@ Reference::Reference() :  	refcount_init.init();  } -Reference::~Reference() { -} -  Variant WeakRef::get_ref() const {  	if (ref.is_null()) @@ -138,9 +135,6 @@ void WeakRef::set_ref(const REF &p_ref) {  	ref = p_ref.is_valid() ? p_ref->get_instance_id() : ObjectID();  } -WeakRef::WeakRef() { -} -  void WeakRef::_bind_methods() {  	ClassDB::bind_method(D_METHOD("get_ref"), &WeakRef::get_ref); diff --git a/core/reference.h b/core/reference.h index 30a93d82a6..5190f6ab11 100644 --- a/core/reference.h +++ b/core/reference.h @@ -52,13 +52,13 @@ public:  	int reference_get_count() const;  	Reference(); -	~Reference(); +	~Reference() {}  };  template <class T>  class Ref { -	T *reference; +	T *reference = nullptr;  	void ref(const Ref &p_from) { @@ -189,15 +189,11 @@ public:  	}  	Ref(const Ref &p_from) { - -		reference = nullptr;  		ref(p_from);  	}  	template <class T_Other>  	Ref(const Ref<T_Other> &p_from) { - -		reference = nullptr;  		Reference *refb = const_cast<Reference *>(static_cast<const Reference *>(p_from.ptr()));  		if (!refb) {  			unref(); @@ -210,26 +206,20 @@ public:  	}  	Ref(T *p_reference) { - -		reference = nullptr;  		if (p_reference)  			ref_pointer(p_reference);  	}  	Ref(const Variant &p_variant) { -  		Object *object = p_variant.get_validated_object();  		if (!object) { -			reference = nullptr;  			return;  		}  		T *r = Object::cast_to<T>(object);  		if (r && r->reference()) {  			reference = r; -		} else { -			reference = nullptr;  		}  	} @@ -252,13 +242,9 @@ public:  		ref(memnew(T));  	} -	Ref() { - -		reference = nullptr; -	} +	Ref() {}  	~Ref() { -  		unref();  	}  }; @@ -279,7 +265,7 @@ public:  	void set_obj(Object *p_object);  	void set_ref(const REF &p_ref); -	WeakRef(); +	WeakRef() {}  };  #ifdef PTRCALL_ENABLED diff --git a/core/register_core_types.cpp b/core/register_core_types.cpp index 4cf7e45205..f24397be5b 100644 --- a/core/register_core_types.cpp +++ b/core/register_core_types.cpp @@ -65,7 +65,6 @@  #include "core/math/triangle_mesh.h"  #include "core/os/main_loop.h"  #include "core/packed_data_container.h" -#include "core/path_remap.h"  #include "core/project_settings.h"  #include "core/translation.h"  #include "core/undo_redo.h" diff --git a/core/resource.cpp b/core/resource.cpp index 8d5c441b21..f8948e9a59 100644 --- a/core/resource.cpp +++ b/core/resource.cpp @@ -429,17 +429,7 @@ void Resource::_bind_methods() {  }  Resource::Resource() : -		remapped_list(this) { - -#ifdef TOOLS_ENABLED -	last_modified_time = 0; -	import_last_modified_time = 0; -#endif - -	subindex = 0; -	local_to_scene = false; -	local_scene = nullptr; -} +		remapped_list(this) {}  Resource::~Resource() { diff --git a/core/resource.h b/core/resource.h index 3b7812c870..7d92b843dc 100644 --- a/core/resource.h +++ b/core/resource.h @@ -57,19 +57,19 @@ class Resource : public Reference {  	String name;  	String path_cache; -	int subindex; +	int subindex = 0;  	virtual bool _use_builtin_script() const { return true; }  #ifdef TOOLS_ENABLED -	uint64_t last_modified_time; -	uint64_t import_last_modified_time; +	uint64_t last_modified_time = 0; +	uint64_t import_last_modified_time = 0;  	String import_path;  #endif -	bool local_to_scene; +	bool local_to_scene = false;  	friend class SceneState; -	Node *local_scene; +	Node *local_scene = nullptr;  	SelfList<Resource> remapped_list; diff --git a/core/rid.h b/core/rid.h index a2f73423a3..ac07eacd08 100644 --- a/core/rid.h +++ b/core/rid.h @@ -37,7 +37,7 @@ class RID_AllocBase;  class RID {  	friend class RID_AllocBase; -	uint64_t _id; +	uint64_t _id = 0;  public:  	_FORCE_INLINE_ bool operator==(const RID &p_rid) const { @@ -65,9 +65,7 @@ public:  	_FORCE_INLINE_ uint64_t get_id() const { return _id; } -	_FORCE_INLINE_ RID() { -		_id = 0; -	} +	_FORCE_INLINE_ RID() {}  };  #endif // RID_H diff --git a/core/rid_owner.h b/core/rid_owner.h index ad6996b9a7..77bbc3c83c 100644 --- a/core/rid_owner.h +++ b/core/rid_owner.h @@ -39,6 +39,7 @@  #include "core/safe_refcount.h"  #include "core/set.h"  #include "core/spin_lock.h" +  #include <stdio.h>  #include <typeinfo> @@ -68,15 +69,15 @@ public:  template <class T, bool THREAD_SAFE = false>  class RID_Alloc : public RID_AllocBase { -	T **chunks; -	uint32_t **free_list_chunks; -	uint32_t **validator_chunks; +	T **chunks = nullptr; +	uint32_t **free_list_chunks = nullptr; +	uint32_t **validator_chunks = nullptr;  	uint32_t elements_in_chunk; -	uint32_t max_alloc; -	uint32_t alloc_count; +	uint32_t max_alloc = 0; +	uint32_t alloc_count = 0; -	const char *description; +	const char *description = nullptr;  	SpinLock spin_lock; @@ -288,14 +289,7 @@ public:  	}  	RID_Alloc(uint32_t p_target_chunk_byte_size = 4096) { -		chunks = nullptr; -		free_list_chunks = nullptr; -		validator_chunks = nullptr; -  		elements_in_chunk = sizeof(T) > p_target_chunk_byte_size ? 1 : (p_target_chunk_byte_size / sizeof(T)); -		max_alloc = 0; -		alloc_count = 0; -		description = nullptr;  	}  	~RID_Alloc() { @@ -412,4 +406,5 @@ public:  	RID_Owner(uint32_t p_target_chunk_byte_size = 4096) :  			alloc(p_target_chunk_byte_size) {}  }; +  #endif // RID_OWNER_H diff --git a/core/ring_buffer.h b/core/ring_buffer.h index 620a3a3846..8ef9b1a15c 100644 --- a/core/ring_buffer.h +++ b/core/ring_buffer.h @@ -37,8 +37,8 @@ template <typename T>  class RingBuffer {  	Vector<T> data; -	int read_pos; -	int write_pos; +	int read_pos = 0; +	int write_pos = 0;  	int size_mask;  	inline int inc(int &p_var, int p_size) const { @@ -214,11 +214,9 @@ public:  	};  	RingBuffer<T>(int p_power = 0) { -		read_pos = 0; -		write_pos = 0;  		resize(p_power);  	}; -	~RingBuffer<T>(){}; +	~RingBuffer<T>() {}  };  #endif // RING_BUFFER_H diff --git a/core/script_language.cpp b/core/script_language.cpp index 82cac6bc9a..603b4dc13d 100644 --- a/core/script_language.cpp +++ b/core/script_language.cpp @@ -34,6 +34,7 @@  #include "core/debugger/engine_debugger.h"  #include "core/debugger/script_debugger.h"  #include "core/project_settings.h" +  #include <stdint.h>  ScriptLanguage *ScriptServer::_languages[MAX_LANGUAGES]; diff --git a/core/script_language.h b/core/script_language.h index 5cc240efcb..544de26d81 100644 --- a/core/script_language.h +++ b/core/script_language.h @@ -253,14 +253,12 @@ struct ScriptCodeCompletionOption {  		KIND_FILE_PATH,  		KIND_PLAIN_TEXT,  	}; -	Kind kind; +	Kind kind = KIND_PLAIN_TEXT;  	String display;  	String insert_text;  	RES icon; -	ScriptCodeCompletionOption() { -		kind = KIND_PLAIN_TEXT; -	} +	ScriptCodeCompletionOption() {}  	ScriptCodeCompletionOption(const String &p_text, Kind p_kind) {  		display = p_text; diff --git a/core/self_list.h b/core/self_list.h index 2c44b0caec..74c585e60e 100644 --- a/core/self_list.h +++ b/core/self_list.h @@ -39,8 +39,8 @@ class SelfList {  public:  	class List { -		SelfList<T> *_first; -		SelfList<T> *_last; +		SelfList<T> *_first = nullptr; +		SelfList<T> *_last = nullptr;  	public:  		void add(SelfList<T> *p_elem) { @@ -105,18 +105,16 @@ public:  		_FORCE_INLINE_ SelfList<T> *first() { return _first; }  		_FORCE_INLINE_ const SelfList<T> *first() const { return _first; } -		_FORCE_INLINE_ List() { -			_first = nullptr; -			_last = nullptr; -		} + +		_FORCE_INLINE_ List() {}  		_FORCE_INLINE_ ~List() { ERR_FAIL_COND(_first != nullptr); }  	};  private: -	List *_root; +	List *_root = nullptr;  	T *_self; -	SelfList<T> *_next; -	SelfList<T> *_prev; +	SelfList<T> *_next = nullptr; +	SelfList<T> *_prev = nullptr;  public:  	_FORCE_INLINE_ bool in_list() const { return _root; } @@ -131,15 +129,10 @@ public:  	_FORCE_INLINE_ T *self() const { return _self; }  	_FORCE_INLINE_ SelfList(T *p_self) { -  		_self = p_self; -		_next = nullptr; -		_prev = nullptr; -		_root = nullptr;  	}  	_FORCE_INLINE_ ~SelfList() { -  		if (_root)  			_root->remove(this);  	} diff --git a/core/set.h b/core/set.h index c17ee15350..851a33b43a 100644 --- a/core/set.h +++ b/core/set.h @@ -51,12 +51,12 @@ public:  	private:  		friend class Set<T, C, A>; -		int color; -		Element *right; -		Element *left; -		Element *parent; -		Element *_next; -		Element *_prev; +		int color = RED; +		Element *right = nullptr; +		Element *left = nullptr; +		Element *parent = nullptr; +		Element *_next = nullptr; +		Element *_prev = nullptr;  		T value;  		//_Data *data; @@ -80,22 +80,15 @@ public:  		const T &get() const {  			return value;  		}; -		Element() { -			color = RED; -			right = nullptr; -			left = nullptr; -			parent = nullptr; -			_next = nullptr; -			_prev = nullptr; -		}; +		Element() {}  	};  private:  	struct _Data { -		Element *_root; +		Element *_root = nullptr;  		Element *_nil; -		int size_cache; +		int size_cache = 0;  		_FORCE_INLINE_ _Data() {  #ifdef GLOBALNIL_DISABLED @@ -105,8 +98,6 @@ private:  #else  			_nil = (Element *)&_GlobalNilClass::_nil;  #endif -			_root = nullptr; -			size_cache = 0;  		}  		void _create_root() { @@ -625,11 +616,9 @@ public:  		_copy_from(p_set);  	} -	_FORCE_INLINE_ Set() { -	} +	_FORCE_INLINE_ Set() {}  	~Set() { -  		clear();  	}  }; diff --git a/core/spin_lock.h b/core/spin_lock.h index c48631f94a..1bb810bb29 100644 --- a/core/spin_lock.h +++ b/core/spin_lock.h @@ -32,6 +32,7 @@  #define SPIN_LOCK_H  #include "core/typedefs.h" +  #include <atomic>  class SpinLock { diff --git a/core/string_buffer.h b/core/string_buffer.h index a140f0abf7..cfe7cdabfe 100644 --- a/core/string_buffer.h +++ b/core/string_buffer.h @@ -38,7 +38,7 @@ class StringBuffer {  	CharType short_buffer[SHORT_BUFFER_SIZE];  	String buffer; -	int string_length; +	int string_length = 0;  	_FORCE_INLINE_ CharType *current_buffer_ptr() {  		return static_cast<String &>(buffer).empty() ? short_buffer : buffer.ptrw(); @@ -78,10 +78,6 @@ public:  	_FORCE_INLINE_ operator String() {  		return as_string();  	} - -	StringBuffer() { -		string_length = 0; -	}  };  template <int SHORT_BUFFER_SIZE> diff --git a/core/string_builder.h b/core/string_builder.h index dd8a154890..8fcd6669bd 100644 --- a/core/string_builder.h +++ b/core/string_builder.h @@ -32,12 +32,11 @@  #define STRING_BUILDER_H  #include "core/ustring.h" -  #include "core/vector.h"  class StringBuilder { -	uint32_t string_length; +	uint32_t string_length = 0;  	Vector<String> strings;  	Vector<const char *> c_strings; @@ -80,9 +79,7 @@ public:  		return as_string();  	} -	StringBuilder() { -		string_length = 0; -	} +	StringBuilder() {}  };  #endif // STRING_BUILDER_H diff --git a/core/string_name.cpp b/core/string_name.cpp index 9cbac97a7c..bfc10d96e4 100644 --- a/core/string_name.cpp +++ b/core/string_name.cpp @@ -388,12 +388,6 @@ StringName StringName::search(const String &p_name) {  	return StringName(); //does not exist  } -StringName::StringName() { - -	_data = nullptr; -} -  StringName::~StringName() { -  	unref();  } diff --git a/core/string_name.h b/core/string_name.h index aec87b8e66..5f69f3a235 100644 --- a/core/string_name.h +++ b/core/string_name.h @@ -52,25 +52,20 @@ class StringName {  	struct _Data {  		SafeRefCount refcount; -		const char *cname; +		const char *cname = nullptr;  		String name;  		String get_name() const { return cname ? String(cname) : name; } -		int idx; -		uint32_t hash; -		_Data *prev; -		_Data *next; -		_Data() { -			cname = nullptr; -			next = prev = nullptr; -			idx = 0; -			hash = 0; -		} +		int idx = 0; +		uint32_t hash = 0; +		_Data *prev = nullptr; +		_Data *next = nullptr; +		_Data() {}  	};  	static _Data *_table[STRING_TABLE_LEN]; -	_Data *_data; +	_Data *_data = nullptr;  	union _HashUnion { @@ -160,7 +155,7 @@ public:  	StringName(const StringName &p_name);  	StringName(const String &p_name);  	StringName(const StaticCString &p_static_string); -	StringName(); +	StringName() {}  	~StringName();  }; diff --git a/core/thread_work_pool.cpp b/core/thread_work_pool.cpp index c8311f102f..28e933ac4d 100644 --- a/core/thread_work_pool.cpp +++ b/core/thread_work_pool.cpp @@ -29,6 +29,7 @@  /*************************************************************************/  #include "thread_work_pool.h" +  #include "core/os/os.h"  void ThreadWorkPool::_thread_function(ThreadData *p_thread) { diff --git a/core/thread_work_pool.h b/core/thread_work_pool.h index 214d2c4aa7..8005bf80b8 100644 --- a/core/thread_work_pool.h +++ b/core/thread_work_pool.h @@ -33,8 +33,10 @@  #include "core/os/memory.h"  #include "core/os/semaphore.h" +  #include <atomic>  #include <thread> +  class ThreadWorkPool {  	std::atomic<uint32_t> index; diff --git a/core/translation.cpp b/core/translation.cpp index 5f31bc7399..191349e953 100644 --- a/core/translation.cpp +++ b/core/translation.cpp @@ -902,10 +902,6 @@ void Translation::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::STRING, "locale"), "set_locale", "get_locale");  } -Translation::Translation() : -		locale("en") { -} -  ///////////////////////////////////////////////  bool TranslationServer::is_locale_valid(const String &p_locale) { @@ -1247,13 +1243,10 @@ void TranslationServer::load_translations() {  	}  } -TranslationServer::TranslationServer() : -		locale("en"), -		enabled(true) { +TranslationServer::TranslationServer() {  	singleton = this;  	for (int i = 0; locale_list[i]; ++i) { -  		locale_name_map.insert(locale_list[i], String::utf8(locale_names[i]));  	}  } diff --git a/core/translation.h b/core/translation.h index 29a068f450..423b3166b1 100644 --- a/core/translation.h +++ b/core/translation.h @@ -39,7 +39,7 @@ class Translation : public Resource {  	OBJ_SAVE_TYPE(Translation);  	RES_BASE_EXTENSION("translation"); -	String locale; +	String locale = "en";  	Map<StringName, StringName> translation_map;  	Vector<String> _get_message_list() const; @@ -61,14 +61,14 @@ public:  	void get_message_list(List<StringName> *r_messages) const;  	int get_message_count() const; -	Translation(); +	Translation() {}  };  class TranslationServer : public Object {  	GDCLASS(TranslationServer, Object); -	String locale; +	String locale = "en";  	String fallback;  	Set<Ref<Translation>> translations; @@ -77,7 +77,7 @@ class TranslationServer : public Object {  	Map<String, String> locale_name_map; -	bool enabled; +	bool enabled = true;  	static TranslationServer *singleton;  	bool _load_translations(const String &p_from); diff --git a/core/typed_array.cpp b/core/typed_array.cpp deleted file mode 100644 index a655a1b563..0000000000 --- a/core/typed_array.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/*************************************************************************/ -/*  typed_array.cpp                                                      */ -/*************************************************************************/ -/*                       This file is part of:                           */ -/*                           GODOT ENGINE                                */ -/*                      https://godotengine.org                          */ -/*************************************************************************/ -/* Copyright (c) 2007-2020 Juan Linietsky, Ariel Manzur.                 */ -/* Copyright (c) 2014-2020 Godot Engine contributors (cf. AUTHORS.md).   */ -/*                                                                       */ -/* Permission is hereby granted, free of charge, to any person obtaining */ -/* a copy of this software and associated documentation files (the       */ -/* "Software"), to deal in the Software without restriction, including   */ -/* without limitation the rights to use, copy, modify, merge, publish,   */ -/* distribute, sublicense, and/or sell copies of the Software, and to    */ -/* permit persons to whom the Software is furnished to do so, subject to */ -/* the following conditions:                                             */ -/*                                                                       */ -/* The above copyright notice and this permission notice shall be        */ -/* included in all copies or substantial portions of the Software.       */ -/*                                                                       */ -/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */ -/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */ -/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ -/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */ -/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */ -/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */ -/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */ -/*************************************************************************/ - -#include "typed_array.h" diff --git a/core/undo_redo.cpp b/core/undo_redo.cpp index 62ad3e9f98..9324dfb573 100644 --- a/core/undo_redo.cpp +++ b/core/undo_redo.cpp @@ -409,23 +409,6 @@ void UndoRedo::set_property_notify_callback(PropertyNotifyCallback p_property_ca  	prop_callback_ud = p_ud;  } -UndoRedo::UndoRedo() { - -	committing = 0; -	version = 1; -	action_level = 0; -	current_action = -1; -	merge_mode = MERGE_DISABLE; -	merging = false; -	callback = nullptr; -	callback_ud = nullptr; - -	method_callbck_ud = nullptr; -	prop_callback_ud = nullptr; -	method_callback = nullptr; -	property_callback = nullptr; -} -  UndoRedo::~UndoRedo() {  	clear_history(); diff --git a/core/undo_redo.h b/core/undo_redo.h index 3b91e9ce36..5b74ffcbb8 100644 --- a/core/undo_redo.h +++ b/core/undo_redo.h @@ -77,25 +77,25 @@ private:  	};  	Vector<Action> actions; -	int current_action; -	int action_level; -	MergeMode merge_mode; -	bool merging; -	uint64_t version; +	int current_action = -1; +	int action_level = 0; +	MergeMode merge_mode = MERGE_DISABLE; +	bool merging = false; +	uint64_t version = 1;  	void _pop_history_tail();  	void _process_operation_list(List<Operation>::Element *E);  	void _discard_redo(); -	CommitNotifyCallback callback; -	void *callback_ud; -	void *method_callbck_ud; -	void *prop_callback_ud; +	CommitNotifyCallback callback = nullptr; +	void *callback_ud = nullptr; +	void *method_callbck_ud = nullptr; +	void *prop_callback_ud = nullptr; -	MethodNotifyCallback method_callback; -	PropertyNotifyCallback property_callback; +	MethodNotifyCallback method_callback = nullptr; +	PropertyNotifyCallback property_callback = nullptr; -	int committing; +	int committing = 0;  protected:  	static void _bind_methods(); @@ -128,7 +128,7 @@ public:  	void set_method_notify_callback(MethodNotifyCallback p_method_callback, void *p_ud);  	void set_property_notify_callback(PropertyNotifyCallback p_property_callback, void *p_ud); -	UndoRedo(); +	UndoRedo() {}  	~UndoRedo();  }; diff --git a/core/ustring.cpp b/core/ustring.cpp index 3e8a1ddbe3..992424f057 100644 --- a/core/ustring.cpp +++ b/core/ustring.cpp @@ -28,10 +28,6 @@  /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */  /*************************************************************************/ -#ifdef _MSC_VER -#define _CRT_SECURE_NO_WARNINGS // to disable build-time warning which suggested to use strcpy_s instead strcpy -#endif -  #include "ustring.h"  #include "core/color.h" @@ -51,6 +47,10 @@  #include <stdlib.h>  #endif +#ifdef _MSC_VER +#define _CRT_SECURE_NO_WARNINGS // to disable build-time warning which suggested to use strcpy_s instead strcpy +#endif +  #if defined(MINGW_ENABLED) || defined(_MSC_VER)  #define snprintf _snprintf_s  #endif diff --git a/core/variant.cpp b/core/variant.cpp index 2eacb5d58c..162d409026 100644 --- a/core/variant.cpp +++ b/core/variant.cpp @@ -3189,16 +3189,9 @@ Variant::Variant(const IP_Address &p_address) {  Variant::Variant(const Variant &p_variant) { -	type = NIL;  	reference(p_variant);  } -/* -Variant::~Variant() { - -	clear(); -}*/ -  uint32_t Variant::hash() const {  	switch (type) { diff --git a/core/variant.h b/core/variant.h index 8e924be00a..0498e93825 100644 --- a/core/variant.h +++ b/core/variant.h @@ -123,7 +123,7 @@ private:  	// Variant takes 20 bytes when real_t is float, and 36 if double  	// it only allocates extra memory for aabb/matrix. -	Type type; +	Type type = NIL;  	struct ObjData { @@ -469,10 +469,9 @@ public:  	static void construct_from_string(const String &p_string, Variant &r_value, ObjectConstruct p_obj_construct = nullptr, void *p_construct_ud = nullptr);  	void operator=(const Variant &p_variant); // only this is enough for all the other types +  	Variant(const Variant &p_variant); -	_FORCE_INLINE_ Variant() { -		type = NIL; -	} +	_FORCE_INLINE_ Variant() {}  	_FORCE_INLINE_ ~Variant() {  		if (type != Variant::NIL)  			clear(); diff --git a/core/variant_parser.h b/core/variant_parser.h index 63ed51bcc9..af7d55d1b8 100644 --- a/core/variant_parser.h +++ b/core/variant_parser.h @@ -43,34 +43,33 @@ public:  		virtual bool is_utf8() const = 0;  		virtual bool is_eof() const = 0; -		CharType saved; +		CharType saved = 0; -		Stream() : -				saved(0) {} +		Stream() {}  		virtual ~Stream() {}  	};  	struct StreamFile : public Stream { -		FileAccess *f; +		FileAccess *f = nullptr;  		virtual CharType get_char();  		virtual bool is_utf8() const;  		virtual bool is_eof() const; -		StreamFile() { f = nullptr; } +		StreamFile() {}  	};  	struct StreamString : public Stream {  		String s; -		int pos; +		int pos = 0;  		virtual CharType get_char();  		virtual bool is_utf8() const;  		virtual bool is_eof() const; -		StreamString() { pos = 0; } +		StreamString() {}  	};  	typedef Error (*ParseResourceFunc)(void *p_self, Stream *p_stream, Ref<Resource> &r_res, int &line, String &r_err_str); diff --git a/core/vector.h b/core/vector.h index 74e0ab91c0..7ab464fe11 100644 --- a/core/vector.h +++ b/core/vector.h @@ -119,8 +119,6 @@ public:  		insert(i, p_val);  	} -	_FORCE_INLINE_ Vector() {} -	_FORCE_INLINE_ Vector(const Vector &p_from) { _cowdata._ref(p_from._cowdata); }  	inline Vector &operator=(const Vector &p_from) {  		_cowdata._ref(p_from._cowdata);  		return *this; @@ -157,6 +155,9 @@ public:  		return slice;  	} +	_FORCE_INLINE_ Vector() {} +	_FORCE_INLINE_ Vector(const Vector &p_from) { _cowdata._ref(p_from._cowdata); } +  	_FORCE_INLINE_ ~Vector() {}  }; diff --git a/core/vmap.h b/core/vmap.h index 84ae1aaf66..848b5055fa 100644 --- a/core/vmap.h +++ b/core/vmap.h @@ -202,11 +202,13 @@ public:  		return _cowdata.get_m(pos).value;  	} -	_FORCE_INLINE_ VMap(){}; +	_FORCE_INLINE_ VMap() {}  	_FORCE_INLINE_ VMap(const VMap &p_from) { _cowdata._ref(p_from._cowdata); } +  	inline VMap &operator=(const VMap &p_from) {  		_cowdata._ref(p_from._cowdata);  		return *this;  	}  }; +  #endif // VMAP_H diff --git a/drivers/alsa/audio_driver_alsa.cpp b/drivers/alsa/audio_driver_alsa.cpp index 48e694dd3a..e394222d3a 100644 --- a/drivers/alsa/audio_driver_alsa.cpp +++ b/drivers/alsa/audio_driver_alsa.cpp @@ -331,14 +331,4 @@ void AudioDriverALSA::finish() {  	finish_device();  } -AudioDriverALSA::AudioDriverALSA() : -		thread(nullptr), -		pcm_handle(nullptr), -		device_name("Default"), -		new_device("Default") { -} - -AudioDriverALSA::~AudioDriverALSA() { -} - -#endif +#endif // ALSA_ENABLED diff --git a/drivers/alsa/audio_driver_alsa.h b/drivers/alsa/audio_driver_alsa.h index 50bd9e853d..d437993901 100644 --- a/drivers/alsa/audio_driver_alsa.h +++ b/drivers/alsa/audio_driver_alsa.h @@ -41,13 +41,13 @@  class AudioDriverALSA : public AudioDriver { -	Thread *thread; +	Thread *thread = nullptr;  	Mutex mutex; -	snd_pcm_t *pcm_handle; +	snd_pcm_t *pcm_handle = nullptr; -	String device_name; -	String new_device; +	String device_name = "Default"; +	String new_device = "Default";  	Vector<int32_t> samples_in;  	Vector<int16_t> samples_out; @@ -85,8 +85,8 @@ public:  	virtual void unlock();  	virtual void finish(); -	AudioDriverALSA(); -	~AudioDriverALSA(); +	AudioDriverALSA() {} +	~AudioDriverALSA() {}  };  #endif // AUDIO_DRIVER_ALSA_H diff --git a/drivers/coreaudio/audio_driver_coreaudio.cpp b/drivers/coreaudio/audio_driver_coreaudio.cpp index 21c3649445..76d2d13dfe 100644 --- a/drivers/coreaudio/audio_driver_coreaudio.cpp +++ b/drivers/coreaudio/audio_driver_coreaudio.cpp @@ -676,19 +676,8 @@ String AudioDriverCoreAudio::capture_get_device() {  #endif -AudioDriverCoreAudio::AudioDriverCoreAudio() : -		audio_unit(nullptr), -		input_unit(nullptr), -		active(false), -		device_name("Default"), -		capture_device_name("Default"), -		mix_rate(0), -		channels(2), -		capture_channels(2), -		buffer_frames(0) { +AudioDriverCoreAudio::AudioDriverCoreAudio() {  	samples_in.clear();  } -AudioDriverCoreAudio::~AudioDriverCoreAudio(){}; - -#endif +#endif // COREAUDIO_ENABLED diff --git a/drivers/coreaudio/audio_driver_coreaudio.h b/drivers/coreaudio/audio_driver_coreaudio.h index fb9473e230..89dd52181f 100644 --- a/drivers/coreaudio/audio_driver_coreaudio.h +++ b/drivers/coreaudio/audio_driver_coreaudio.h @@ -42,19 +42,19 @@  class AudioDriverCoreAudio : public AudioDriver { -	AudioComponentInstance audio_unit; -	AudioComponentInstance input_unit; +	AudioComponentInstance audio_unit = nullptr; +	AudioComponentInstance input_unit = nullptr; -	bool active; +	bool active = false;  	Mutex mutex; -	String device_name; -	String capture_device_name; +	String device_name = "Default"; +	String capture_device_name = "Default"; -	int mix_rate; -	unsigned int channels; -	unsigned int capture_channels; -	unsigned int buffer_frames; +	int mix_rate = 0; +	unsigned int channels = 2; +	unsigned int capture_channels = 2; +	unsigned int buffer_frames = 0;  	Vector<int32_t> samples_in;  	Vector<int16_t> input_buf; @@ -118,7 +118,7 @@ public:  #endif  	AudioDriverCoreAudio(); -	~AudioDriverCoreAudio(); +	~AudioDriverCoreAudio() {}  };  #endif diff --git a/drivers/coremidi/midi_driver_coremidi.cpp b/drivers/coremidi/midi_driver_coremidi.cpp index 2cd322813b..f155b4accc 100644 --- a/drivers/coremidi/midi_driver_coremidi.cpp +++ b/drivers/coremidi/midi_driver_coremidi.cpp @@ -112,9 +112,7 @@ PackedStringArray MIDIDriverCoreMidi::get_connected_inputs() {  	return list;  } -MIDIDriverCoreMidi::MIDIDriverCoreMidi() : -		client(0) { -} +MIDIDriverCoreMidi::MIDIDriverCoreMidi() {}  MIDIDriverCoreMidi::~MIDIDriverCoreMidi() {  	close(); diff --git a/drivers/coremidi/midi_driver_coremidi.h b/drivers/coremidi/midi_driver_coremidi.h index e8b4481c20..68de7a11fb 100644 --- a/drivers/coremidi/midi_driver_coremidi.h +++ b/drivers/coremidi/midi_driver_coremidi.h @@ -41,7 +41,7 @@  class MIDIDriverCoreMidi : public MIDIDriver { -	MIDIClientRef client; +	MIDIClientRef client = 0;  	MIDIPortRef port_in;  	Vector<MIDIEndpointRef> connected_sources; diff --git a/drivers/pulseaudio/audio_driver_pulseaudio.cpp b/drivers/pulseaudio/audio_driver_pulseaudio.cpp index 8a47f6cf96..b16408f727 100644 --- a/drivers/pulseaudio/audio_driver_pulseaudio.cpp +++ b/drivers/pulseaudio/audio_driver_pulseaudio.cpp @@ -793,30 +793,9 @@ String AudioDriverPulseAudio::capture_get_device() {  	return name;  } -AudioDriverPulseAudio::AudioDriverPulseAudio() : -		thread(nullptr), -		pa_ml(nullptr), -		pa_ctx(nullptr), -		pa_str(nullptr), -		pa_rec_str(nullptr), -		device_name("Default"), -		new_device("Default"), -		default_device(""), -		mix_rate(0), -		buffer_frames(0), -		pa_buffer_size(0), -		channels(0), -		pa_ready(0), -		pa_status(0), -		active(false), -		thread_exited(false), -		exit_thread(false), -		latency(0) { +AudioDriverPulseAudio::AudioDriverPulseAudio() {  	samples_in.clear();  	samples_out.clear();  } -AudioDriverPulseAudio::~AudioDriverPulseAudio() { -} - -#endif +#endif // PULSEAUDIO_ENABLED diff --git a/drivers/pulseaudio/audio_driver_pulseaudio.h b/drivers/pulseaudio/audio_driver_pulseaudio.h index 1ece332a8a..ab55a15076 100644 --- a/drivers/pulseaudio/audio_driver_pulseaudio.h +++ b/drivers/pulseaudio/audio_driver_pulseaudio.h @@ -41,18 +41,18 @@  class AudioDriverPulseAudio : public AudioDriver { -	Thread *thread; +	Thread *thread = nullptr;  	Mutex mutex; -	pa_mainloop *pa_ml; -	pa_context *pa_ctx; -	pa_stream *pa_str; -	pa_stream *pa_rec_str; +	pa_mainloop *pa_ml = nullptr; +	pa_context *pa_ctx = nullptr; +	pa_stream *pa_str = nullptr; +	pa_stream *pa_rec_str = nullptr;  	pa_channel_map pa_map;  	pa_channel_map pa_rec_map; -	String device_name; -	String new_device; +	String device_name = "Default"; +	String new_device = "Default";  	String default_device;  	String capture_device_name; @@ -62,20 +62,20 @@ class AudioDriverPulseAudio : public AudioDriver {  	Vector<int32_t> samples_in;  	Vector<int16_t> samples_out; -	unsigned int mix_rate; -	unsigned int buffer_frames; -	unsigned int pa_buffer_size; -	int channels; -	int pa_ready; -	int pa_status; +	unsigned int mix_rate = 0; +	unsigned int buffer_frames = 0; +	unsigned int pa_buffer_size = 0; +	int channels = 0; +	int pa_ready = 0; +	int pa_status = 0;  	Array pa_devices;  	Array pa_rec_devices; -	bool active; -	bool thread_exited; -	mutable bool exit_thread; +	bool active = false; +	bool thread_exited = false; +	mutable bool exit_thread = false; -	float latency; +	float latency = 0;  	static void pa_state_cb(pa_context *c, void *userdata);  	static void pa_sink_info_cb(pa_context *c, const pa_sink_info *l, int eol, void *userdata); @@ -122,7 +122,7 @@ public:  	virtual Error capture_stop();  	AudioDriverPulseAudio(); -	~AudioDriverPulseAudio(); +	~AudioDriverPulseAudio() {}  };  #endif // AUDIO_DRIVER_PULSEAUDIO_H diff --git a/drivers/unix/file_access_unix.cpp b/drivers/unix/file_access_unix.cpp index 4aa408a1f0..54a585c6fd 100644 --- a/drivers/unix/file_access_unix.cpp +++ b/drivers/unix/file_access_unix.cpp @@ -354,14 +354,7 @@ FileAccess *FileAccessUnix::create_libc() {  CloseNotificationFunc FileAccessUnix::close_notification_func = nullptr; -FileAccessUnix::FileAccessUnix() : -		f(nullptr), -		flags(0), -		last_error(OK) { -} -  FileAccessUnix::~FileAccessUnix() { -  	close();  } diff --git a/drivers/unix/file_access_unix.h b/drivers/unix/file_access_unix.h index 8116f72345..1dd080914d 100644 --- a/drivers/unix/file_access_unix.h +++ b/drivers/unix/file_access_unix.h @@ -42,10 +42,10 @@ typedef void (*CloseNotificationFunc)(const String &p_file, int p_flags);  class FileAccessUnix : public FileAccess { -	FILE *f; -	int flags; +	FILE *f = nullptr; +	int flags = 0;  	void check_errors() const; -	mutable Error last_error; +	mutable Error last_error = OK;  	String save_path;  	String path;  	String path_src; @@ -84,7 +84,7 @@ public:  	virtual uint32_t _get_unix_permissions(const String &p_file);  	virtual Error _set_unix_permissions(const String &p_file, uint32_t p_permissions); -	FileAccessUnix(); +	FileAccessUnix() {}  	virtual ~FileAccessUnix();  }; diff --git a/drivers/unix/net_socket_posix.cpp b/drivers/unix/net_socket_posix.cpp index 7c6543c3a2..81ea20e5da 100644 --- a/drivers/unix/net_socket_posix.cpp +++ b/drivers/unix/net_socket_posix.cpp @@ -173,9 +173,7 @@ void NetSocketPosix::cleanup() {  }  NetSocketPosix::NetSocketPosix() : -		_sock(SOCK_EMPTY), -		_ip_type(IP::TYPE_NONE), -		_is_stream(false) { +		_sock(SOCK_EMPTY) {  }  NetSocketPosix::~NetSocketPosix() { diff --git a/drivers/unix/net_socket_posix.h b/drivers/unix/net_socket_posix.h index 0a19967265..2e767eef92 100644 --- a/drivers/unix/net_socket_posix.h +++ b/drivers/unix/net_socket_posix.h @@ -48,8 +48,8 @@ class NetSocketPosix : public NetSocket {  private:  	SOCKET_TYPE _sock; -	IP::Type _ip_type; -	bool _is_stream; +	IP::Type _ip_type = IP::TYPE_NONE; +	bool _is_stream = false;  	enum NetError {  		ERR_NET_WOULD_BLOCK, diff --git a/drivers/wasapi/audio_driver_wasapi.cpp b/drivers/wasapi/audio_driver_wasapi.cpp index ab2976f02c..1fc01ce76e 100644 --- a/drivers/wasapi/audio_driver_wasapi.cpp +++ b/drivers/wasapi/audio_driver_wasapi.cpp @@ -69,13 +69,11 @@ static bool default_render_device_changed = false;  static bool default_capture_device_changed = false;  class CMMNotificationClient : public IMMNotificationClient { -	LONG _cRef; -	IMMDeviceEnumerator *_pEnumerator; +	LONG _cRef = 1; +	IMMDeviceEnumerator *_pEnumerator = nullptr;  public: -	CMMNotificationClient() : -			_cRef(1), -			_pEnumerator(nullptr) {} +	CMMNotificationClient() {}  	virtual ~CMMNotificationClient() {  		if ((_pEnumerator) != nullptr) {  			(_pEnumerator)->Release(); @@ -854,17 +852,7 @@ String AudioDriverWASAPI::capture_get_device() {  }  AudioDriverWASAPI::AudioDriverWASAPI() { - -	thread = nullptr; -  	samples_in.clear(); - -	channels = 0; -	mix_rate = 0; -	buffer_frames = 0; - -	thread_exited = false; -	exit_thread = false;  } -#endif +#endif // WASAPI_ENABLED diff --git a/drivers/wasapi/audio_driver_wasapi.h b/drivers/wasapi/audio_driver_wasapi.h index 01a4666812..2fcf8936fa 100644 --- a/drivers/wasapi/audio_driver_wasapi.h +++ b/drivers/wasapi/audio_driver_wasapi.h @@ -45,47 +45,36 @@ class AudioDriverWASAPI : public AudioDriver {  	class AudioDeviceWASAPI {  	public: -		IAudioClient *audio_client; -		IAudioRenderClient *render_client; -		IAudioCaptureClient *capture_client; -		bool active; - -		WORD format_tag; -		WORD bits_per_sample; -		unsigned int channels; -		unsigned int frame_size; - -		String device_name; -		String new_device; - -		AudioDeviceWASAPI() : -				audio_client(nullptr), -				render_client(nullptr), -				capture_client(nullptr), -				active(false), -				format_tag(0), -				bits_per_sample(0), -				channels(0), -				frame_size(0), -				device_name("Default"), -				new_device("Default") { -		} +		IAudioClient *audio_client = nullptr; +		IAudioRenderClient *render_client = nullptr; +		IAudioCaptureClient *capture_client = nullptr; +		bool active = false; + +		WORD format_tag = 0; +		WORD bits_per_sample = 0; +		unsigned int channels = 0; +		unsigned int frame_size = 0; + +		String device_name = "Default"; +		String new_device = "Default"; + +		AudioDeviceWASAPI() {}  	};  	AudioDeviceWASAPI audio_input;  	AudioDeviceWASAPI audio_output;  	Mutex mutex; -	Thread *thread; +	Thread *thread = nullptr;  	Vector<int32_t> samples_in; -	unsigned int channels; -	int mix_rate; -	int buffer_frames; +	unsigned int channels = 0; +	int mix_rate = 0; +	int buffer_frames = 0; -	bool thread_exited; -	mutable bool exit_thread; +	bool thread_exited = false; +	mutable bool exit_thread = false;  	static _FORCE_INLINE_ void write_sample(WORD format_tag, int bits_per_sample, BYTE *buffer, int i, int32_t sample);  	static _FORCE_INLINE_ int32_t read_sample(WORD format_tag, int bits_per_sample, BYTE *buffer, int i); diff --git a/drivers/windows/file_access_windows.cpp b/drivers/windows/file_access_windows.cpp index 69078b3326..f1326abb7b 100644 --- a/drivers/windows/file_access_windows.cpp +++ b/drivers/windows/file_access_windows.cpp @@ -353,15 +353,8 @@ Error FileAccessWindows::_set_unix_permissions(const String &p_file, uint32_t p_  	return ERR_UNAVAILABLE;  } -FileAccessWindows::FileAccessWindows() : -		f(nullptr), -		flags(0), -		prev_op(0), -		last_error(OK) { -}  FileAccessWindows::~FileAccessWindows() { -  	close();  } -#endif +#endif // WINDOWS_ENABLED diff --git a/drivers/windows/file_access_windows.h b/drivers/windows/file_access_windows.h index 28d4375878..34a7e400a0 100644 --- a/drivers/windows/file_access_windows.h +++ b/drivers/windows/file_access_windows.h @@ -40,11 +40,11 @@  class FileAccessWindows : public FileAccess { -	FILE *f; -	int flags; +	FILE *f = nullptr; +	int flags = 0;  	void check_errors() const; -	mutable int prev_op; -	mutable Error last_error; +	mutable int prev_op = 0; +	mutable Error last_error = OK;  	String path;  	String path_src;  	String save_path; @@ -79,9 +79,10 @@ public:  	virtual uint32_t _get_unix_permissions(const String &p_file);  	virtual Error _set_unix_permissions(const String &p_file, uint32_t p_permissions); -	FileAccessWindows(); +	FileAccessWindows() {}  	virtual ~FileAccessWindows();  }; -#endif -#endif +#endif // WINDOWS_ENABLED + +#endif // FILE_ACCESS_WINDOWS_H diff --git a/drivers/windows/thread_windows.cpp b/drivers/windows/thread_windows.cpp index aea2db2603..c36437d891 100644 --- a/drivers/windows/thread_windows.cpp +++ b/drivers/windows/thread_windows.cpp @@ -90,11 +90,4 @@ void ThreadWindows::make_default() {  	wait_to_finish_func = wait_to_finish_func_windows;  } -ThreadWindows::ThreadWindows() : -		handle(nullptr) { -} - -ThreadWindows::~ThreadWindows() { -} -  #endif diff --git a/drivers/windows/thread_windows.h b/drivers/windows/thread_windows.h index 669956cd32..93de4c6e8c 100644 --- a/drivers/windows/thread_windows.h +++ b/drivers/windows/thread_windows.h @@ -43,7 +43,7 @@ class ThreadWindows : public Thread {  	ThreadCreateCallback callback;  	void *user;  	ID id; -	HANDLE handle; +	HANDLE handle = nullptr;  	static Thread *create_thread_windows(); @@ -53,14 +53,14 @@ class ThreadWindows : public Thread {  	static ID get_thread_id_func_windows();  	static void wait_to_finish_func_windows(Thread *p_thread); -	ThreadWindows(); +	ThreadWindows() {}  public:  	virtual ID get_id() const;  	static void make_default(); -	~ThreadWindows(); +	~ThreadWindows() {}  };  #endif diff --git a/drivers/xaudio2/audio_driver_xaudio2.cpp b/drivers/xaudio2/audio_driver_xaudio2.cpp index 120bfa2b36..d12ebf8d94 100644 --- a/drivers/xaudio2/audio_driver_xaudio2.cpp +++ b/drivers/xaudio2/audio_driver_xaudio2.cpp @@ -196,15 +196,9 @@ void AudioDriverXAudio2::finish() {  	thread = nullptr;  } -AudioDriverXAudio2::AudioDriverXAudio2() : -		thread(nullptr), -		current_buffer(0) { -	wave_format = { 0 }; +AudioDriverXAudio2::AudioDriverXAudio2() {  	for (int i = 0; i < AUDIO_BUFFERS; i++) {  		xaudio_buffer[i] = { 0 };  		samples_out[i] = 0;  	}  } - -AudioDriverXAudio2::~AudioDriverXAudio2() { -} diff --git a/drivers/xaudio2/audio_driver_xaudio2.h b/drivers/xaudio2/audio_driver_xaudio2.h index eb4a6d6e95..9182fa4172 100644 --- a/drivers/xaudio2/audio_driver_xaudio2.h +++ b/drivers/xaudio2/audio_driver_xaudio2.h @@ -64,7 +64,7 @@ class AudioDriverXAudio2 : public AudioDriver {  		void STDMETHODCALLTYPE OnVoiceError(void *pBufferContext, HRESULT Error) {}  	}; -	Thread *thread; +	Thread *thread = nullptr;  	Mutex mutex;  	int32_t *samples_in; @@ -83,9 +83,9 @@ class AudioDriverXAudio2 : public AudioDriver {  	mutable bool exit_thread;  	bool pcm_open; -	WAVEFORMATEX wave_format; +	WAVEFORMATEX wave_format = { 0 };  	Microsoft::WRL::ComPtr<IXAudio2> xaudio; -	int current_buffer; +	int current_buffer = 0;  	IXAudio2MasteringVoice *mastering_voice;  	XAUDIO2_BUFFER xaudio_buffer[AUDIO_BUFFERS];  	IXAudio2SourceVoice *source_voice; @@ -104,7 +104,7 @@ public:  	virtual void finish();  	AudioDriverXAudio2(); -	~AudioDriverXAudio2(); +	~AudioDriverXAudio2() {}  };  #endif diff --git a/editor/debugger/editor_debugger_inspector.h b/editor/debugger/editor_debugger_inspector.h index e1dfbefcf3..f0ee7a2535 100644 --- a/editor/debugger/editor_debugger_inspector.h +++ b/editor/debugger/editor_debugger_inspector.h @@ -61,7 +61,7 @@ public:  	void update() { _change_notify(); } -	EditorDebuggerRemoteObject(){}; +	EditorDebuggerRemoteObject() {}  };  class EditorDebuggerInspector : public EditorInspector { diff --git a/editor/debugger/editor_debugger_node.h b/editor/debugger/editor_debugger_node.h index 7546febd05..88b82d37fd 100644 --- a/editor/debugger/editor_debugger_node.h +++ b/editor/debugger/editor_debugger_node.h @@ -76,7 +76,7 @@ private:  			return line < p_b.line;  		} -		Breakpoint(){}; +		Breakpoint() {}  		Breakpoint(const String &p_source, int p_line) {  			line = p_line; diff --git a/editor/editor_audio_buses.cpp b/editor/editor_audio_buses.cpp index c80ae5f21b..39c94cc523 100644 --- a/editor/editor_audio_buses.cpp +++ b/editor/editor_audio_buses.cpp @@ -1480,11 +1480,7 @@ void EditorAudioMeterNotches::_draw_audio_notches() {  	}  } -EditorAudioMeterNotches::EditorAudioMeterNotches() : -		line_length(5.0f), -		label_space(2.0f), -		btm_padding(9.0f), -		top_padding(5.0f) { +EditorAudioMeterNotches::EditorAudioMeterNotches() {  	notch_color = EditorSettings::get_singleton()->is_dark_theme() ? Color(1, 1, 1) : Color(0, 0, 0);  } diff --git a/editor/editor_audio_buses.h b/editor/editor_audio_buses.h index be1551629d..3e911bcc65 100644 --- a/editor/editor_audio_buses.h +++ b/editor/editor_audio_buses.h @@ -246,10 +246,10 @@ private:  	List<AudioNotch> notches;  public: -	float line_length; -	float label_space; -	float btm_padding; -	float top_padding; +	float line_length = 5.0f; +	float label_space = 2.0f; +	float btm_padding = 9.0f; +	float top_padding = 5.0f;  	Color notch_color;  	void add_notch(float p_normalized_offset, float p_db_value, bool p_render_value = false); diff --git a/editor/editor_export.cpp b/editor/editor_export.cpp index 24a69fe003..62996caa3d 100644 --- a/editor/editor_export.cpp +++ b/editor/editor_export.cpp @@ -252,13 +252,6 @@ String EditorExportPreset::get_script_encryption_key() const {  	return script_key;  } -EditorExportPreset::EditorExportPreset() : -		export_filter(EXPORT_ALL_RESOURCES), -		export_path(""), -		runnable(false), -		script_mode(MODE_SCRIPT_COMPILED) { -} -  ///////////////////////////////////  void EditorExportPlatform::gen_debug_flags(Vector<String> &r_flags, int p_flags) { diff --git a/editor/editor_export.h b/editor/editor_export.h index 50d1ff66c6..1dedc21350 100644 --- a/editor/editor_export.h +++ b/editor/editor_export.h @@ -61,14 +61,14 @@ public:  private:  	Ref<EditorExportPlatform> platform; -	ExportFilter export_filter; +	ExportFilter export_filter = EXPORT_ALL_RESOURCES;  	String include_filter;  	String exclude_filter;  	String export_path;  	String exporter;  	Set<String> selected_files; -	bool runnable; +	bool runnable = false;  	Vector<String> patches; @@ -82,7 +82,7 @@ private:  	String custom_features; -	int script_mode; +	int script_mode = MODE_SCRIPT_COMPILED;  	String script_key;  protected: @@ -136,7 +136,7 @@ public:  	const List<PropertyInfo> &get_properties() const { return properties; } -	EditorExportPreset(); +	EditorExportPreset() {}  };  struct SharedObject { diff --git a/editor/editor_help_search.cpp b/editor/editor_help_search.cpp index 01a50cad2c..1a865de23d 100644 --- a/editor/editor_help_search.cpp +++ b/editor/editor_help_search.cpp @@ -595,7 +595,6 @@ bool EditorHelpSearch::Runner::work(uint64_t slot) {  }  EditorHelpSearch::Runner::Runner(Control *p_icon_service, Tree *p_results_tree, const String &p_term, int p_search_flags) : -		phase(0),  		ui_service(p_icon_service),  		results_tree(p_results_tree),  		term((p_search_flags & SEARCH_CASE_SENSITIVE) == 0 ? p_term.strip_edges().to_lower() : p_term.strip_edges()), diff --git a/editor/editor_help_search.h b/editor/editor_help_search.h index feff96d2e5..9f58c7244f 100644 --- a/editor/editor_help_search.h +++ b/editor/editor_help_search.h @@ -95,7 +95,7 @@ class EditorHelpSearch::Runner : public Reference {  		PHASE_SELECT_MATCH,  		PHASE_MAX  	}; -	int phase; +	int phase = 0;  	struct ClassMatch {  		DocData::ClassDoc *doc; diff --git a/editor/editor_node.cpp b/editor/editor_node.cpp index 42eef2d130..c38f705c1b 100644 --- a/editor/editor_node.cpp +++ b/editor/editor_node.cpp @@ -42,7 +42,6 @@  #include "core/os/file_access.h"  #include "core/os/keyboard.h"  #include "core/os/os.h" -#include "core/path_remap.h"  #include "core/print_string.h"  #include "core/project_settings.h"  #include "core/translation.h" diff --git a/editor/editor_plugin.cpp b/editor/editor_plugin.cpp index 746ebc8292..8689cad45b 100644 --- a/editor/editor_plugin.cpp +++ b/editor/editor_plugin.cpp @@ -913,16 +913,6 @@ void EditorPlugin::_bind_methods() {  	BIND_ENUM_CONSTANT(DOCK_SLOT_MAX);  } -EditorPlugin::EditorPlugin() : -		undo_redo(nullptr), -		input_event_forwarding_always_enabled(false), -		force_draw_over_forwarding_enabled(false), -		last_main_screen_name("") { -} - -EditorPlugin::~EditorPlugin() { -} -  EditorPluginCreateFunc EditorPlugins::creation_funcs[MAX_CREATE_FUNCS];  int EditorPlugins::creation_func_count = 0; diff --git a/editor/editor_plugin.h b/editor/editor_plugin.h index 2ca96ceed2..a939d58752 100644 --- a/editor/editor_plugin.h +++ b/editor/editor_plugin.h @@ -113,12 +113,12 @@ class EditorPlugin : public Node {  	GDCLASS(EditorPlugin, Node);  	friend class EditorData; -	UndoRedo *undo_redo; +	UndoRedo *undo_redo = nullptr;  	UndoRedo *_get_undo_redo() { return undo_redo; } -	bool input_event_forwarding_always_enabled; -	bool force_draw_over_forwarding_enabled; +	bool input_event_forwarding_always_enabled = false; +	bool force_draw_over_forwarding_enabled = false;  	String last_main_screen_name; @@ -242,8 +242,8 @@ public:  	void enable_plugin();  	void disable_plugin(); -	EditorPlugin(); -	virtual ~EditorPlugin(); +	EditorPlugin() {} +	virtual ~EditorPlugin() {}  };  VARIANT_ENUM_CAST(EditorPlugin::CustomControlContainer); diff --git a/editor/editor_sectioned_inspector.cpp b/editor/editor_sectioned_inspector.cpp index bccc38ca1b..3bb7072eac 100644 --- a/editor/editor_sectioned_inspector.cpp +++ b/editor/editor_sectioned_inspector.cpp @@ -29,7 +29,9 @@  /*************************************************************************/  #include "editor_sectioned_inspector.h" +  #include "editor_scale.h" +  class SectionedInspectorFilter : public Object {  	GDCLASS(SectionedInspectorFilter, Object); @@ -307,8 +309,7 @@ EditorInspector *SectionedInspector::get_inspector() {  SectionedInspector::SectionedInspector() :  		sections(memnew(Tree)),  		filter(memnew(SectionedInspectorFilter)), -		inspector(memnew(EditorInspector)), -		search_box(nullptr) { +		inspector(memnew(EditorInspector)) {  	add_theme_constant_override("autohide", 1); // Fixes the dragger always showing up  	VBoxContainer *left_vb = memnew(VBoxContainer); diff --git a/editor/editor_sectioned_inspector.h b/editor/editor_sectioned_inspector.h index 7073b73751..f01e6e250e 100644 --- a/editor/editor_sectioned_inspector.h +++ b/editor/editor_sectioned_inspector.h @@ -48,7 +48,7 @@ class SectionedInspector : public HSplitContainer {  	Map<String, TreeItem *> section_map;  	EditorInspector *inspector; -	LineEdit *search_box; +	LineEdit *search_box = nullptr;  	String selected_category; diff --git a/editor/editor_settings.h b/editor/editor_settings.h index 29b89ef1a8..8f1a3c8333 100644 --- a/editor/editor_settings.h +++ b/editor/editor_settings.h @@ -64,27 +64,19 @@ public:  private:  	struct VariantContainer { -		int order; +		int order = 0;  		Variant variant;  		Variant initial; -		bool has_default_value; -		bool hide_from_editor; -		bool save; -		bool restart_if_changed; -		VariantContainer() : -				order(0), -				has_default_value(false), -				hide_from_editor(false), -				save(false), -				restart_if_changed(false) { -		} +		bool has_default_value = false; +		bool hide_from_editor = false; +		bool save = false; +		bool restart_if_changed = false; + +		VariantContainer() {} +  		VariantContainer(const Variant &p_variant, int p_order) :  				order(p_order), -				variant(p_variant), -				has_default_value(false), -				hide_from_editor(false), -				save(false), -				restart_if_changed(false) { +				variant(p_variant) {  		}  	}; diff --git a/editor/filesystem_dock.h b/editor/filesystem_dock.h index 6d2d8510d1..08c2124ae8 100644 --- a/editor/filesystem_dock.h +++ b/editor/filesystem_dock.h @@ -148,11 +148,9 @@ private:  	class FileOrFolder {  	public:  		String path; -		bool is_file; +		bool is_file = false; -		FileOrFolder() : -				path(""), -				is_file(false) {} +		FileOrFolder() {}  		FileOrFolder(const String &p_path, bool p_is_file) :  				path(p_path),  				is_file(p_is_file) {} diff --git a/editor/import/collada.h b/editor/import/collada.h index b74332fb22..187a8092da 100644 --- a/editor/import/collada.h +++ b/editor/import/collada.h @@ -61,26 +61,22 @@ public:  		struct Channel { -			int uv_idx; +			int uv_idx = 0;  			String texture;  			Color color; -			Channel() { uv_idx = 0; } +			Channel() {}  		};  		Channel diffuse, specular, emission, bump; -		float shininess; -		bool found_double_sided; -		bool double_sided; -		bool unshaded; +		float shininess = 40; +		bool found_double_sided = false; +		bool double_sided = true; +		bool unshaded = false;  		String get_texture_path(const String &p_source, Collada &state) const;  		Effect() {  			diffuse.color = Color(1, 1, 1, 1); -			double_sided = true; -			found_double_sided = false; -			shininess = 40; -			unshaded = false;  		}  	}; @@ -91,31 +87,24 @@ public:  			MODE_ORTHOGONAL  		}; -		Mode mode; +		Mode mode = MODE_PERSPECTIVE;  		union {  			struct { -				float x_fov; -				float y_fov; +				float x_fov = 0; +				float y_fov = 0;  			} perspective;  			struct { -				float x_mag; -				float y_mag; +				float x_mag = 0; +				float y_mag = 0;  			} orthogonal;  		}; -		float aspect; -		float z_near; -		float z_far; - -		CameraData() : -				mode(MODE_PERSPECTIVE), -				aspect(1), -				z_near(0.1), -				z_far(100) { -			perspective.x_fov = 0; -			perspective.y_fov = 0; -		} +		float aspect = 1; +		float z_near = 0.1; +		float z_far = 100; + +		CameraData() {}  	};  	struct LightData { @@ -127,26 +116,18 @@ public:  			MODE_SPOT  		}; -		Mode mode; +		Mode mode = MODE_AMBIENT; -		Color color; +		Color color = Color(1, 1, 1, 1); -		float constant_att; -		float linear_att; -		float quad_att; - -		float spot_angle; -		float spot_exp; - -		LightData() : -				mode(MODE_AMBIENT), -				color(Color(1, 1, 1, 1)), -				constant_att(0), -				linear_att(0), -				quad_att(0), -				spot_angle(45), -				spot_exp(1) { -		} +		float constant_att = 0; +		float linear_att = 0; +		float quad_att = 0; + +		float spot_angle = 45; +		float spot_exp = 1; + +		LightData() {}  	};  	struct MeshData { @@ -185,19 +166,16 @@ public:  		Vector<Primitives> primitives; -		bool found_double_sided; -		bool double_sided; +		bool found_double_sided = false; +		bool double_sided = true; -		MeshData() { -			found_double_sided = false; -			double_sided = true; -		} +		MeshData() {}  	};  	struct CurveData {  		String name; -		bool closed; +		bool closed = false;  		struct Source { @@ -210,15 +188,13 @@ public:  		Map<String, String> control_vertices; -		CurveData() { - -			closed = false; -		} +		CurveData() {}  	}; +  	struct SkinControllerData {  		String base; -		bool use_idrefs; +		bool use_idrefs = false;  		Transform bind_shape; @@ -226,10 +202,8 @@ public:  			Vector<String> sarray; //maybe for names  			Vector<float> array; -			int stride; -			Source() { -				stride = 1; -			} +			int stride = 1; +			Source() {}  		};  		Map<String, Source> sources; @@ -256,7 +230,7 @@ public:  		Map<String, Transform> bone_rest_map; -		SkinControllerData() { use_idrefs = false; } +		SkinControllerData() {}  	};  	struct MorphControllerData { @@ -266,10 +240,10 @@ public:  		struct Source { -			int stride; +			int stride = 1;  			Vector<String> sarray; //maybe for names  			Vector<float> array; -			Source() { stride = 1; } +			Source() {}  		};  		Map<String, Source> sources; @@ -280,14 +254,14 @@ public:  	struct Vertex { -		int idx; +		int idx = 0;  		Vector3 vertex;  		Vector3 normal;  		Vector3 uv;  		Vector3 uv2;  		Plane tangent;  		Color color; -		int uid; +		int uid = 0;  		struct Weight {  			int bone_idx;  			float weight; @@ -350,11 +324,9 @@ public:  				return uid < p_vert.uid;  		} -		Vertex() { -			uid = 0; -			idx = 0; -		} +		Vertex() {}  	}; +  	struct Node {  		enum Type { @@ -382,31 +354,26 @@ public:  			Vector<float> data;  		}; -		Type type; +		Type type = TYPE_NODE;  		String name;  		String id;  		String empty_draw_type; -		bool noname; +		bool noname = false;  		Vector<XForm> xform_list;  		Transform default_transform;  		Transform post_transform;  		Vector<Node *> children; -		Node *parent; +		Node *parent = nullptr;  		Transform compute_transform(Collada &state) const;  		Transform get_global_transform() const;  		Transform get_transform() const; -		bool ignore_anim; +		bool ignore_anim = false; -		Node() { -			noname = false; -			type = TYPE_NODE; -			parent = nullptr; -			ignore_anim = false; -		} +		Node() {}  		virtual ~Node() {  			for (int i = 0; i < children.size(); i++)  				memdelete(children[i]); @@ -420,11 +387,10 @@ public:  	struct NodeJoint : public Node { -		NodeSkeleton *owner; +		NodeSkeleton *owner = nullptr;  		String sid;  		NodeJoint() {  			type = TYPE_JOINT; -			owner = nullptr;  		}  	}; @@ -471,14 +437,11 @@ public:  	struct AnimationClip {  		String name; -		float begin; -		float end; +		float begin = 0; +		float end = 1;  		Vector<String> tracks; -		AnimationClip() { -			begin = 0; -			end = 1; -		} +		AnimationClip() {}  	};  	struct AnimationTrack { @@ -487,7 +450,7 @@ public:  		String target;  		String param;  		String component; -		bool property; +		bool property = false;  		enum InterpolationType {  			INTERP_LINEAR, @@ -505,16 +468,16 @@ public:  			Vector<float> data;  			Point2 in_tangent;  			Point2 out_tangent; -			InterpolationType interp_type; +			InterpolationType interp_type = INTERP_LINEAR; -			Key() { interp_type = INTERP_LINEAR; } +			Key() {}  		};  		Vector<float> get_value_at_time(float p_time) const;  		Vector<Key> keys; -		AnimationTrack() { property = false; } +		AnimationTrack() {}  	};  	/****************/ @@ -523,10 +486,10 @@ public:  	struct State { -		int import_flags; +		int import_flags = 0; -		float unit_scale; -		Vector3::Axis up_axis; +		float unit_scale = 1.0; +		Vector3::Axis up_axis = Vector3::AXIS_Y;  		bool z_up;  		struct Version { @@ -573,14 +536,9 @@ public:  		Map<String, Vector<int>> referenced_tracks;  		Map<String, Vector<int>> by_id_tracks; -		float animation_length; +		float animation_length = 0; -		State() : -				import_flags(0), -				unit_scale(1.0), -				up_axis(Vector3::AXIS_Y), -				animation_length(0) { -		} +		State() {}  	} state;  	Error load(const String &p_path, int p_flags = 0); diff --git a/editor/import/editor_scene_importer_gltf.h b/editor/import/editor_scene_importer_gltf.h index d127a87782..86d7e627a3 100644 --- a/editor/import/editor_scene_importer_gltf.h +++ b/editor/import/editor_scene_importer_gltf.h @@ -94,90 +94,60 @@ class EditorSceneImporterGLTF : public EditorSceneImporter {  	struct GLTFNode {  		//matrices need to be transformed to this -		GLTFNodeIndex parent; -		int height; +		GLTFNodeIndex parent = -1; +		int height = -1;  		Transform xform;  		String name; -		GLTFMeshIndex mesh; -		GLTFCameraIndex camera; -		GLTFSkinIndex skin; +		GLTFMeshIndex mesh = -1; +		GLTFCameraIndex camera = -1; +		GLTFSkinIndex skin = -1; -		GLTFSkeletonIndex skeleton; -		bool joint; +		GLTFSkeletonIndex skeleton = -1; +		bool joint = false;  		Vector3 translation;  		Quat rotation; -		Vector3 scale; +		Vector3 scale = Vector3(1, 1, 1);  		Vector<int> children; -		GLTFNodeIndex fake_joint_parent; - -		GLTFNode() : -				parent(-1), -				height(-1), -				mesh(-1), -				camera(-1), -				skin(-1), -				skeleton(-1), -				joint(false), -				translation(0, 0, 0), -				scale(Vector3(1, 1, 1)), -				fake_joint_parent(-1) {} +		GLTFNodeIndex fake_joint_parent = -1; + +		GLTFNode() {}  	};  	struct GLTFBufferView { -		GLTFBufferIndex buffer; -		int byte_offset; -		int byte_length; -		int byte_stride; -		bool indices; +		GLTFBufferIndex buffer = -1; +		int byte_offset = 0; +		int byte_length = 0; +		int byte_stride = 0; +		bool indices = false;  		//matrices need to be transformed to this -		GLTFBufferView() : -				buffer(-1), -				byte_offset(0), -				byte_length(0), -				byte_stride(0), -				indices(false) { -		} +		GLTFBufferView() {}  	};  	struct GLTFAccessor { -		GLTFBufferViewIndex buffer_view; -		int byte_offset; -		int component_type; -		bool normalized; -		int count; +		GLTFBufferViewIndex buffer_view = 0; +		int byte_offset = 0; +		int component_type = 0; +		bool normalized = false; +		int count = 0;  		GLTFType type; -		float min; -		float max; -		int sparse_count; -		int sparse_indices_buffer_view; -		int sparse_indices_byte_offset; -		int sparse_indices_component_type; -		int sparse_values_buffer_view; -		int sparse_values_byte_offset; - -		GLTFAccessor() { -			buffer_view = 0; -			byte_offset = 0; -			component_type = 0; -			normalized = false; -			count = 0; -			min = 0; -			max = 0; -			sparse_count = 0; -			sparse_indices_buffer_view = 0; -			sparse_indices_byte_offset = 0; -			sparse_indices_component_type = 0; -			sparse_values_buffer_view = 0; -			sparse_values_byte_offset = 0; -		} +		float min = 0; +		float max = 0; +		int sparse_count = 0; +		int sparse_indices_buffer_view = 0; +		int sparse_indices_byte_offset = 0; +		int sparse_indices_component_type = 0; +		int sparse_values_buffer_view = 0; +		int sparse_values_byte_offset = 0; + +		GLTFAccessor() {}  	};  	struct GLTFTexture {  		GLTFImageIndex src_image; @@ -192,21 +162,19 @@ class EditorSceneImporterGLTF : public EditorSceneImporter {  		Vector<GLTFNodeIndex> roots;  		// The created Skeleton for the scene -		Skeleton3D *godot_skeleton; +		Skeleton3D *godot_skeleton = nullptr;  		// Set of unique bone names for the skeleton  		Set<String> unique_names; -		GLTFSkeleton() : -				godot_skeleton(nullptr) { -		} +		GLTFSkeleton() {}  	};  	struct GLTFSkin {  		String name;  		// The "skeleton" property defined in the gltf spec. -1 = Scene Root -		GLTFNodeIndex skin_root; +		GLTFNodeIndex skin_root = -1;  		Vector<GLTFNodeIndex> joints_original;  		Vector<Transform> inverse_binds; @@ -226,7 +194,7 @@ class EditorSceneImporterGLTF : public EditorSceneImporter {  		Vector<GLTFNodeIndex> roots;  		// The GLTF Skeleton this Skin points to (after we determine skeletons) -		GLTFSkeletonIndex skeleton; +		GLTFSkeletonIndex skeleton = -1;  		// A mapping from the joint indices (in the order of joints_original) to the  		// Godot Skeleton's bone_indices @@ -237,9 +205,7 @@ class EditorSceneImporterGLTF : public EditorSceneImporter {  		// to the generated skeleton for the mesh instances.  		Ref<Skin> godot_skin; -		GLTFSkin() : -				skin_root(-1), -				skeleton(-1) {} +		GLTFSkin() {}  	};  	struct GLTFMesh { @@ -249,17 +215,12 @@ class EditorSceneImporterGLTF : public EditorSceneImporter {  	struct GLTFCamera { -		bool perspective; -		float fov_size; -		float zfar; -		float znear; +		bool perspective = true; +		float fov_size = 64; +		float zfar = 500; +		float znear = 0.1; -		GLTFCamera() { -			perspective = true; -			fov_size = 65; -			zfar = 500; -			znear = 0.1; -		} +		GLTFCamera() {}  	};  	struct GLTFAnimation { diff --git a/editor/plugins/abstract_polygon_2d_editor.cpp b/editor/plugins/abstract_polygon_2d_editor.cpp index c26daa3857..beb3d760c0 100644 --- a/editor/plugins/abstract_polygon_2d_editor.cpp +++ b/editor/plugins/abstract_polygon_2d_editor.cpp @@ -34,24 +34,6 @@  #include "core/os/keyboard.h"  #include "editor/editor_scale.h" -AbstractPolygon2DEditor::Vertex::Vertex() : -		polygon(-1), -		vertex(-1) { -	// invalid vertex -} - -AbstractPolygon2DEditor::Vertex::Vertex(int p_vertex) : -		polygon(-1), -		vertex(p_vertex) { -	// vertex p_vertex of current wip polygon -} - -AbstractPolygon2DEditor::Vertex::Vertex(int p_polygon, int p_vertex) : -		polygon(p_polygon), -		vertex(p_vertex) { -	// vertex p_vertex of polygon p_polygon -} -  bool AbstractPolygon2DEditor::Vertex::operator==(const AbstractPolygon2DEditor::Vertex &p_vertex) const {  	return polygon == p_vertex.polygon && vertex == p_vertex.vertex; @@ -67,20 +49,6 @@ bool AbstractPolygon2DEditor::Vertex::valid() const {  	return vertex >= 0;  } -AbstractPolygon2DEditor::PosVertex::PosVertex() { -	// invalid vertex -} - -AbstractPolygon2DEditor::PosVertex::PosVertex(const Vertex &p_vertex, const Vector2 &p_pos) : -		Vertex(p_vertex.polygon, p_vertex.vertex), -		pos(p_pos) { -} - -AbstractPolygon2DEditor::PosVertex::PosVertex(int p_polygon, int p_vertex, const Vector2 &p_pos) : -		Vertex(p_polygon, p_vertex), -		pos(p_pos) { -} -  bool AbstractPolygon2DEditor::_is_empty() const {  	if (!_get_node()) diff --git a/editor/plugins/abstract_polygon_2d_editor.h b/editor/plugins/abstract_polygon_2d_editor.h index 6ed6d0a257..7d4a3a0f98 100644 --- a/editor/plugins/abstract_polygon_2d_editor.h +++ b/editor/plugins/abstract_polygon_2d_editor.h @@ -47,23 +47,30 @@ class AbstractPolygon2DEditor : public HBoxContainer {  	ToolButton *button_delete;  	struct Vertex { -		Vertex(); -		Vertex(int p_vertex); -		Vertex(int p_polygon, int p_vertex); +		Vertex() {} +		Vertex(int p_vertex) : +				vertex(p_vertex) {} +		Vertex(int p_polygon, int p_vertex) : +				polygon(p_polygon), +				vertex(p_vertex) {}  		bool operator==(const Vertex &p_vertex) const;  		bool operator!=(const Vertex &p_vertex) const;  		bool valid() const; -		int polygon; -		int vertex; +		int polygon = -1; +		int vertex = -1;  	};  	struct PosVertex : public Vertex { -		PosVertex(); -		PosVertex(const Vertex &p_vertex, const Vector2 &p_pos); -		PosVertex(int p_polygon, int p_vertex, const Vector2 &p_pos); +		PosVertex() {} +		PosVertex(const Vertex &p_vertex, const Vector2 &p_pos) : +				Vertex(p_vertex.polygon, p_vertex.vertex), +				pos(p_pos) {} +		PosVertex(int p_polygon, int p_vertex, const Vector2 &p_pos) : +				Vertex(p_polygon, p_vertex), +				pos(p_pos) {}  		Vector2 pos;  	}; diff --git a/editor/plugins/canvas_item_editor_plugin.h b/editor/plugins/canvas_item_editor_plugin.h index 9f1a92f563..77f23dfd6d 100644 --- a/editor/plugins/canvas_item_editor_plugin.h +++ b/editor/plugins/canvas_item_editor_plugin.h @@ -48,10 +48,10 @@ class CanvasItemEditorSelectedItem : public Object {  public:  	Transform2D prev_xform; -	float prev_rot; +	float prev_rot = 0;  	Rect2 prev_rect;  	Vector2 prev_pivot; -	float prev_anchors[4]; +	float prev_anchors[4] = { 0.0f };  	Transform2D pre_drag_xform;  	Rect2 pre_drag_rect; @@ -61,10 +61,7 @@ public:  	Dictionary undo_state; -	CanvasItemEditorSelectedItem() : -			prev_anchors() { -		prev_rot = 0; -	} +	CanvasItemEditorSelectedItem() {}  };  class CanvasItemEditor : public VBoxContainer { @@ -314,12 +311,10 @@ private:  	struct BoneList {  		Transform2D xform; -		float length; -		uint64_t last_pass; +		float length = 0.f; +		uint64_t last_pass = 0; -		BoneList() : -				length(0.f), -				last_pass(0) {} +		BoneList() {}  	};  	uint64_t bone_last_frame; diff --git a/editor/plugins/physical_bone_3d_editor_plugin.cpp b/editor/plugins/physical_bone_3d_editor_plugin.cpp index 6d38f7f318..567d58922f 100644 --- a/editor/plugins/physical_bone_3d_editor_plugin.cpp +++ b/editor/plugins/physical_bone_3d_editor_plugin.cpp @@ -48,8 +48,7 @@ void PhysicalBone3DEditor::_set_move_joint() {  }  PhysicalBone3DEditor::PhysicalBone3DEditor(EditorNode *p_editor) : -		editor(p_editor), -		selected(nullptr) { +		editor(p_editor) {  	spatial_editor_hb = memnew(HBoxContainer);  	spatial_editor_hb->set_h_size_flags(Control::SIZE_EXPAND_FILL); @@ -69,8 +68,6 @@ PhysicalBone3DEditor::PhysicalBone3DEditor(EditorNode *p_editor) :  	hide();  } -PhysicalBone3DEditor::~PhysicalBone3DEditor() {} -  void PhysicalBone3DEditor::set_selected(PhysicalBone3D *p_pb) {  	button_transform_joint->set_pressed(false); @@ -90,7 +87,6 @@ void PhysicalBone3DEditor::show() {  PhysicalBone3DEditorPlugin::PhysicalBone3DEditorPlugin(EditorNode *p_editor) :  		editor(p_editor), -		selected(nullptr),  		physical_bone_editor(editor) {}  void PhysicalBone3DEditorPlugin::make_visible(bool p_visible) { diff --git a/editor/plugins/physical_bone_3d_editor_plugin.h b/editor/plugins/physical_bone_3d_editor_plugin.h index 74932710d6..79c7cc4bb1 100644 --- a/editor/plugins/physical_bone_3d_editor_plugin.h +++ b/editor/plugins/physical_bone_3d_editor_plugin.h @@ -40,7 +40,7 @@ class PhysicalBone3DEditor : public Object {  	HBoxContainer *spatial_editor_hb;  	ToolButton *button_transform_joint; -	PhysicalBone3D *selected; +	PhysicalBone3D *selected = nullptr;  protected:  	static void _bind_methods(); @@ -51,7 +51,7 @@ private:  public:  	PhysicalBone3DEditor(EditorNode *p_editor); -	~PhysicalBone3DEditor(); +	~PhysicalBone3DEditor() {}  	void set_selected(PhysicalBone3D *p_pb); @@ -63,7 +63,7 @@ class PhysicalBone3DEditorPlugin : public EditorPlugin {  	GDCLASS(PhysicalBone3DEditorPlugin, EditorPlugin);  	EditorNode *editor; -	PhysicalBone3D *selected; +	PhysicalBone3D *selected = nullptr;  	PhysicalBone3DEditor physical_bone_editor;  public: diff --git a/editor/plugins/skeleton_3d_editor_plugin.h b/editor/plugins/skeleton_3d_editor_plugin.h index 2ba5a817bc..1bcf27e2f2 100644 --- a/editor/plugins/skeleton_3d_editor_plugin.h +++ b/editor/plugins/skeleton_3d_editor_plugin.h @@ -46,10 +46,9 @@ class Skeleton3DEditor : public Node {  	};  	struct BoneInfo { -		PhysicalBone3D *physical_bone; +		PhysicalBone3D *physical_bone = nullptr;  		Transform relative_rest; // Relative to skeleton node -		BoneInfo() : -				physical_bone(nullptr) {} +		BoneInfo() {}  	};  	Skeleton3D *skeleton; diff --git a/editor/plugins/tile_map_editor_plugin.h b/editor/plugins/tile_map_editor_plugin.h index f43e5bb5cb..28b0e9b6db 100644 --- a/editor/plugins/tile_map_editor_plugin.h +++ b/editor/plugins/tile_map_editor_plugin.h @@ -33,7 +33,6 @@  #include "editor/editor_node.h"  #include "editor/editor_plugin.h" -  #include "scene/2d/tile_map.h"  #include "scene/gui/check_box.h"  #include "scene/gui/label.h" @@ -127,34 +126,26 @@ class TileMapEditor : public VBoxContainer {  	List<Point2i> bucket_queue;  	struct CellOp { -		int idx; -		bool xf; -		bool yf; -		bool tr; +		int idx = TileMap::INVALID_CELL; +		bool xf = false; +		bool yf = false; +		bool tr = false;  		Vector2 ac; -		CellOp() : -				idx(TileMap::INVALID_CELL), -				xf(false), -				yf(false), -				tr(false) {} +		CellOp() {}  	};  	Map<Point2i, CellOp> paint_undo;  	struct TileData {  		Point2i pos; -		int cell; -		bool flip_h; -		bool flip_v; -		bool transpose; +		int cell = TileMap::INVALID_CELL; +		bool flip_h = false; +		bool flip_v = false; +		bool transpose = false;  		Point2i autotile_coord; -		TileData() : -				cell(TileMap::INVALID_CELL), -				flip_h(false), -				flip_v(false), -				transpose(false) {} +		TileData() {}  	};  	List<TileData> copydata; diff --git a/editor/rename_dialog.h b/editor/rename_dialog.h index 194dd57648..280bd00d95 100644 --- a/editor/rename_dialog.h +++ b/editor/rename_dialog.h @@ -48,7 +48,7 @@ class RenameDialog : public ConfirmationDialog {  	GDCLASS(RenameDialog, ConfirmationDialog);  	virtual void ok_pressed() { rename(); }; -	void _cancel_pressed(){}; +	void _cancel_pressed() {}  	void _features_toggled(bool pressed);  	void _insert_text(String text);  	void _update_substitute(); @@ -111,7 +111,7 @@ public:  	void rename();  	RenameDialog(SceneTreeEditor *p_scene_tree_editor, UndoRedo *p_undo_redo = nullptr); -	~RenameDialog(){}; +	~RenameDialog() {}  };  #endif diff --git a/main/main_timer_sync.cpp b/main/main_timer_sync.cpp index 9e23a1f5cb..469ef6f20a 100644 --- a/main/main_timer_sync.cpp +++ b/main/main_timer_sync.cpp @@ -193,12 +193,7 @@ float MainTimerSync::get_cpu_idle_step() {  	return cpu_ticks_elapsed / 1000000.0;  } -MainTimerSync::MainTimerSync() : -		last_cpu_ticks_usec(0), -		current_cpu_ticks_usec(0), -		time_accum(0), -		time_deficit(0), -		fixed_fps(0) { +MainTimerSync::MainTimerSync() {  	for (int i = CONTROL_STEPS - 1; i >= 0; --i) {  		typical_physics_steps[i] = i;  		accumulated_physics_steps[i] = i; diff --git a/main/main_timer_sync.h b/main/main_timer_sync.h index 620d1c747d..2126381c7c 100644 --- a/main/main_timer_sync.h +++ b/main/main_timer_sync.h @@ -43,14 +43,14 @@ struct MainFrameTime {  class MainTimerSync {  	// wall clock time measured on the main thread -	uint64_t last_cpu_ticks_usec; -	uint64_t current_cpu_ticks_usec; +	uint64_t last_cpu_ticks_usec = 0; +	uint64_t current_cpu_ticks_usec = 0;  	// logical game time since last physics timestep -	float time_accum; +	float time_accum = 0;  	// current difference between wall clock time and reported sum of idle_steps -	float time_deficit; +	float time_deficit = 0;  	// number of frames back for keeping accumulated physics steps roughly constant.  	// value of 12 chosen because that is what is required to make 144 Hz monitors @@ -64,7 +64,7 @@ class MainTimerSync {  	// typical value for accumulated_physics_steps[i] is either this or this plus one  	int typical_physics_steps[CONTROL_STEPS]; -	int fixed_fps; +	int fixed_fps = 0;  protected:  	// returns the fraction of p_frame_slice required for the timer to overshoot diff --git a/modules/bullet/area_bullet.cpp b/modules/bullet/area_bullet.cpp index 4d727529ef..a4a86ab751 100644 --- a/modules/bullet/area_bullet.cpp +++ b/modules/bullet/area_bullet.cpp @@ -44,18 +44,7 @@  */  AreaBullet::AreaBullet() : -		RigidCollisionObjectBullet(CollisionObjectBullet::TYPE_AREA), -		monitorable(true), -		spOv_mode(PhysicsServer3D::AREA_SPACE_OVERRIDE_DISABLED), -		spOv_gravityPoint(false), -		spOv_gravityPointDistanceScale(0), -		spOv_gravityPointAttenuation(1), -		spOv_gravityVec(0, -1, 0), -		spOv_gravityMag(10), -		spOv_linearDump(0.1), -		spOv_angularDump(1), -		spOv_priority(0), -		isScratched(false) { +		RigidCollisionObjectBullet(CollisionObjectBullet::TYPE_AREA) {  	btGhost = bulletnew(btGhostObject);  	reload_shapes(); diff --git a/modules/bullet/area_bullet.h b/modules/bullet/area_bullet.h index 0272350510..cde889c1ba 100644 --- a/modules/bullet/area_bullet.h +++ b/modules/bullet/area_bullet.h @@ -61,12 +61,10 @@ public:  	};  	struct OverlappingObjectData { -		CollisionObjectBullet *object; -		OverlapState state; +		CollisionObjectBullet *object = nullptr; +		OverlapState state = OVERLAP_STATE_ENTER; -		OverlappingObjectData() : -				object(nullptr), -				state(OVERLAP_STATE_ENTER) {} +		OverlappingObjectData() {}  		OverlappingObjectData(CollisionObjectBullet *p_object, OverlapState p_state) :  				object(p_object),  				state(p_state) {} @@ -86,19 +84,19 @@ private:  	btGhostObject *btGhost;  	Vector<OverlappingObjectData> overlappingObjects; -	bool monitorable; - -	PhysicsServer3D::AreaSpaceOverrideMode spOv_mode; -	bool spOv_gravityPoint; -	real_t spOv_gravityPointDistanceScale; -	real_t spOv_gravityPointAttenuation; -	Vector3 spOv_gravityVec; -	real_t spOv_gravityMag; -	real_t spOv_linearDump; -	real_t spOv_angularDump; -	int spOv_priority; - -	bool isScratched; +	bool monitorable = true; + +	PhysicsServer3D::AreaSpaceOverrideMode spOv_mode = PhysicsServer3D::AREA_SPACE_OVERRIDE_DISABLED; +	bool spOv_gravityPoint = false; +	real_t spOv_gravityPointDistanceScale = 0; +	real_t spOv_gravityPointAttenuation = 1; +	Vector3 spOv_gravityVec = Vector3(0, -1, 0); +	real_t spOv_gravityMag = 10; +	real_t spOv_linearDump = 0.1; +	real_t spOv_angularDump = 1; +	int spOv_priority = 0; + +	bool isScratched = false;  	InOutEventCallback eventsCallbacks[2]; diff --git a/modules/bullet/bullet_physics_server.cpp b/modules/bullet/bullet_physics_server.cpp index 2705c749a2..09a5f6f983 100644 --- a/modules/bullet/bullet_physics_server.cpp +++ b/modules/bullet/bullet_physics_server.cpp @@ -79,9 +79,7 @@ void BulletPhysicsServer3D::_bind_methods() {  }  BulletPhysicsServer3D::BulletPhysicsServer3D() : -		PhysicsServer3D(), -		active(true), -		active_spaces_count(0) {} +		PhysicsServer3D() {}  BulletPhysicsServer3D::~BulletPhysicsServer3D() {} diff --git a/modules/bullet/bullet_physics_server.h b/modules/bullet/bullet_physics_server.h index ea9c5e589e..558d1ce5f7 100644 --- a/modules/bullet/bullet_physics_server.h +++ b/modules/bullet/bullet_physics_server.h @@ -40,6 +40,7 @@  #include "shape_bullet.h"  #include "soft_body_bullet.h"  #include "space_bullet.h" +  /**  	@author AndreaCatania  */ @@ -49,8 +50,8 @@ class BulletPhysicsServer3D : public PhysicsServer3D {  	friend class BulletPhysicsDirectSpaceState; -	bool active; -	char active_spaces_count; +	bool active = true; +	char active_spaces_count = 0;  	Vector<SpaceBullet *> active_spaces;  	mutable RID_PtrOwner<SpaceBullet> space_owner; diff --git a/modules/bullet/collision_object_bullet.cpp b/modules/bullet/collision_object_bullet.cpp index 1b72c2f577..9ad74ad262 100644 --- a/modules/bullet/collision_object_bullet.cpp +++ b/modules/bullet/collision_object_bullet.cpp @@ -89,18 +89,7 @@ void CollisionObjectBullet::ShapeWrapper::claim_bt_shape(const btVector3 &body_s  CollisionObjectBullet::CollisionObjectBullet(Type p_type) :  		RIDBullet(), -		type(p_type), -		instance_id(ObjectID()), -		collisionLayer(0), -		collisionMask(0), -		collisionsEnabled(true), -		m_isStatic(false), -		ray_pickable(false), -		bt_collision_object(nullptr), -		body_scale(1., 1., 1.), -		force_shape_reset(false), -		space(nullptr), -		isTransformChanged(false) {} +		type(p_type) {}  CollisionObjectBullet::~CollisionObjectBullet() {  	// Remove all overlapping, notify is not required since godot take care of it @@ -225,11 +214,6 @@ void CollisionObjectBullet::notify_transform_changed() {  	isTransformChanged = true;  } -RigidCollisionObjectBullet::RigidCollisionObjectBullet(Type p_type) : -		CollisionObjectBullet(p_type), -		mainShape(nullptr) { -} -  RigidCollisionObjectBullet::~RigidCollisionObjectBullet() {  	remove_all_shapes(true, true);  	if (mainShape && mainShape->isCompound()) { diff --git a/modules/bullet/collision_object_bullet.h b/modules/bullet/collision_object_bullet.h index 25176458a7..f1423a69e4 100644 --- a/modules/bullet/collision_object_bullet.h +++ b/modules/bullet/collision_object_bullet.h @@ -69,27 +69,22 @@ public:  	};  	struct ShapeWrapper { -		ShapeBullet *shape; -		btCollisionShape *bt_shape; +		ShapeBullet *shape = nullptr; +		btCollisionShape *bt_shape = nullptr;  		btTransform transform;  		btVector3 scale; -		bool active; +		bool active = true; -		ShapeWrapper() : -				shape(nullptr), -				bt_shape(nullptr), -				active(true) {} +		ShapeWrapper() {}  		ShapeWrapper(ShapeBullet *p_shape, const btTransform &p_transform, bool p_active) :  				shape(p_shape), -				bt_shape(nullptr),  				active(p_active) {  			set_transform(p_transform);  		}  		ShapeWrapper(ShapeBullet *p_shape, const Transform &p_transform, bool p_active) :  				shape(p_shape), -				bt_shape(nullptr),  				active(p_active) {  			set_transform(p_transform);  		} @@ -117,15 +112,15 @@ public:  protected:  	Type type;  	ObjectID instance_id; -	uint32_t collisionLayer; -	uint32_t collisionMask; -	bool collisionsEnabled; -	bool m_isStatic; -	bool ray_pickable; -	btCollisionObject *bt_collision_object; -	Vector3 body_scale; -	bool force_shape_reset; -	SpaceBullet *space; +	uint32_t collisionLayer = 0; +	uint32_t collisionMask = 0; +	bool collisionsEnabled = true; +	bool m_isStatic = false; +	bool ray_pickable = false; +	btCollisionObject *bt_collision_object = nullptr; +	Vector3 body_scale = Vector3(1, 1, 1); +	bool force_shape_reset = false; +	SpaceBullet *space = nullptr;  	VSet<RID> exceptions; @@ -133,7 +128,7 @@ protected:  	/// New area is added when overlap with new area (AreaBullet::addOverlap), then is removed when it exit (CollisionObjectBullet::onExitArea)  	/// This array is used mainly to know which area hold the pointer of this object  	Vector<AreaBullet *> areasOverlapped; -	bool isTransformChanged; +	bool isTransformChanged = false;  public:  	CollisionObjectBullet(Type p_type); @@ -218,11 +213,12 @@ public:  class RigidCollisionObjectBullet : public CollisionObjectBullet, public ShapeOwnerBullet {  protected: -	btCollisionShape *mainShape; +	btCollisionShape *mainShape = nullptr;  	Vector<ShapeWrapper> shapes;  public: -	RigidCollisionObjectBullet(Type p_type); +	RigidCollisionObjectBullet(Type p_type) : +			CollisionObjectBullet(p_type) {}  	~RigidCollisionObjectBullet();  	_FORCE_INLINE_ const Vector<ShapeWrapper> &get_shapes_wrappers() const { return shapes; } diff --git a/modules/bullet/constraint_bullet.cpp b/modules/bullet/constraint_bullet.cpp index 469b58521e..c47a23e75f 100644 --- a/modules/bullet/constraint_bullet.cpp +++ b/modules/bullet/constraint_bullet.cpp @@ -37,10 +37,7 @@  	@author AndreaCatania  */ -ConstraintBullet::ConstraintBullet() : -		space(nullptr), -		constraint(nullptr), -		disabled_collisions_between_bodies(true) {} +ConstraintBullet::ConstraintBullet() {}  void ConstraintBullet::setup(btTypedConstraint *p_constraint) {  	constraint = p_constraint; diff --git a/modules/bullet/constraint_bullet.h b/modules/bullet/constraint_bullet.h index 1946807bad..125940439f 100644 --- a/modules/bullet/constraint_bullet.h +++ b/modules/bullet/constraint_bullet.h @@ -47,9 +47,9 @@ class btTypedConstraint;  class ConstraintBullet : public RIDBullet {  protected: -	SpaceBullet *space; -	btTypedConstraint *constraint; -	bool disabled_collisions_between_bodies; +	SpaceBullet *space = nullptr; +	btTypedConstraint *constraint = nullptr; +	bool disabled_collisions_between_bodies = true;  public:  	ConstraintBullet(); diff --git a/modules/bullet/godot_ray_world_algorithm.cpp b/modules/bullet/godot_ray_world_algorithm.cpp index 2ef277cf5b..2caa75c2a7 100644 --- a/modules/bullet/godot_ray_world_algorithm.cpp +++ b/modules/bullet/godot_ray_world_algorithm.cpp @@ -52,7 +52,6 @@ GodotRayWorldAlgorithm::GodotRayWorldAlgorithm(const btDiscreteDynamicsWorld *wo  		btActivatingCollisionAlgorithm(ci, body0Wrap, body1Wrap),  		m_world(world),  		m_manifoldPtr(mf), -		m_ownManifold(false),  		m_isSwapped(isSwapped) {}  GodotRayWorldAlgorithm::~GodotRayWorldAlgorithm() { diff --git a/modules/bullet/godot_ray_world_algorithm.h b/modules/bullet/godot_ray_world_algorithm.h index 2cdea6c133..ec7f68dc51 100644 --- a/modules/bullet/godot_ray_world_algorithm.h +++ b/modules/bullet/godot_ray_world_algorithm.h @@ -45,7 +45,7 @@ class GodotRayWorldAlgorithm : public btActivatingCollisionAlgorithm {  	const btDiscreteDynamicsWorld *m_world;  	btPersistentManifold *m_manifoldPtr; -	bool m_ownManifold; +	bool m_ownManifold = false;  	bool m_isSwapped;  public: diff --git a/modules/bullet/godot_result_callbacks.h b/modules/bullet/godot_result_callbacks.h index 7e74a2b22e..8636ca8eb6 100644 --- a/modules/bullet/godot_result_callbacks.h +++ b/modules/bullet/godot_result_callbacks.h @@ -56,8 +56,8 @@ struct GodotFilterCallback : public btOverlapFilterCallback {  /// It performs an additional check allow exclusions.  struct GodotClosestRayResultCallback : public btCollisionWorld::ClosestRayResultCallback {  	const Set<RID> *m_exclude; -	bool m_pickRay; -	int m_shapeId; +	bool m_pickRay = false; +	int m_shapeId = 0;  	bool collide_with_bodies;  	bool collide_with_areas; @@ -66,8 +66,6 @@ public:  	GodotClosestRayResultCallback(const btVector3 &rayFromWorld, const btVector3 &rayToWorld, const Set<RID> *p_exclude, bool p_collide_with_bodies, bool p_collide_with_areas) :  			btCollisionWorld::ClosestRayResultCallback(rayFromWorld, rayToWorld),  			m_exclude(p_exclude), -			m_pickRay(false), -			m_shapeId(0),  			collide_with_bodies(p_collide_with_bodies),  			collide_with_areas(p_collide_with_areas) {} @@ -88,13 +86,12 @@ public:  	PhysicsDirectSpaceState3D::ShapeResult *m_results;  	int m_resultMax;  	const Set<RID> *m_exclude; -	int count; +	int count = 0;  	GodotAllConvexResultCallback(PhysicsDirectSpaceState3D::ShapeResult *p_results, int p_resultMax, const Set<RID> *p_exclude) :  			m_results(p_results),  			m_resultMax(p_resultMax), -			m_exclude(p_exclude), -			count(0) {} +			m_exclude(p_exclude) {}  	virtual bool needsCollision(btBroadphaseProxy *proxy0) const; @@ -117,7 +114,7 @@ public:  struct GodotClosestConvexResultCallback : public btCollisionWorld::ClosestConvexResultCallback {  public:  	const Set<RID> *m_exclude; -	int m_shapeId; +	int m_shapeId = 0;  	bool collide_with_bodies;  	bool collide_with_areas; @@ -125,7 +122,6 @@ public:  	GodotClosestConvexResultCallback(const btVector3 &convexFromWorld, const btVector3 &convexToWorld, const Set<RID> *p_exclude, bool p_collide_with_bodies, bool p_collide_with_areas) :  			btCollisionWorld::ClosestConvexResultCallback(convexFromWorld, convexToWorld),  			m_exclude(p_exclude), -			m_shapeId(0),  			collide_with_bodies(p_collide_with_bodies),  			collide_with_areas(p_collide_with_areas) {} @@ -140,7 +136,7 @@ public:  	PhysicsDirectSpaceState3D::ShapeResult *m_results;  	int m_resultMax;  	const Set<RID> *m_exclude; -	int m_count; +	int m_count = 0;  	bool collide_with_bodies;  	bool collide_with_areas; @@ -150,7 +146,6 @@ public:  			m_results(p_results),  			m_resultMax(p_resultMax),  			m_exclude(p_exclude), -			m_count(0),  			collide_with_bodies(p_collide_with_bodies),  			collide_with_areas(p_collide_with_areas) {} @@ -166,7 +161,7 @@ public:  	Vector3 *m_results;  	int m_resultMax;  	const Set<RID> *m_exclude; -	int m_count; +	int m_count = 0;  	bool collide_with_bodies;  	bool collide_with_areas; @@ -176,7 +171,6 @@ public:  			m_results(p_results),  			m_resultMax(p_resultMax),  			m_exclude(p_exclude), -			m_count(0),  			collide_with_bodies(p_collide_with_bodies),  			collide_with_areas(p_collide_with_areas) {} @@ -190,8 +184,8 @@ public:  	const btCollisionObject *m_self_object;  	PhysicsDirectSpaceState3D::ShapeRestInfo *m_result;  	const Set<RID> *m_exclude; -	bool m_collided; -	real_t m_min_distance; +	bool m_collided = false; +	real_t m_min_distance = 0;  	const btCollisionObject *m_rest_info_collision_object;  	btVector3 m_rest_info_bt_point;  	bool collide_with_bodies; @@ -201,8 +195,6 @@ public:  			m_self_object(p_self_object),  			m_result(p_result),  			m_exclude(p_exclude), -			m_collided(false), -			m_min_distance(0),  			collide_with_bodies(p_collide_with_bodies),  			collide_with_areas(p_collide_with_areas) {} @@ -214,13 +206,11 @@ public:  struct GodotDeepPenetrationContactResultCallback : public btManifoldResult {  	btVector3 m_pointNormalWorld;  	btVector3 m_pointWorld; -	btScalar m_penetration_distance; -	int m_other_compound_shape_index; +	btScalar m_penetration_distance = 0; +	int m_other_compound_shape_index = 0;  	GodotDeepPenetrationContactResultCallback(const btCollisionObjectWrapper *body0Wrap, const btCollisionObjectWrapper *body1Wrap) : -			btManifoldResult(body0Wrap, body1Wrap), -			m_penetration_distance(0), -			m_other_compound_shape_index(0) {} +			btManifoldResult(body0Wrap, body1Wrap) {}  	void reset() {  		m_penetration_distance = 0; diff --git a/modules/bullet/rigid_body_bullet.cpp b/modules/bullet/rigid_body_bullet.cpp index e393396713..7a244b8c32 100644 --- a/modules/bullet/rigid_body_bullet.cpp +++ b/modules/bullet/rigid_body_bullet.cpp @@ -256,25 +256,7 @@ void RigidBodyBullet::KinematicUtilities::just_delete_shapes(int new_size) {  }  RigidBodyBullet::RigidBodyBullet() : -		RigidCollisionObjectBullet(CollisionObjectBullet::TYPE_RIGID_BODY), -		kinematic_utilities(nullptr), -		locked_axis(0), -		mass(1), -		gravity_scale(1), -		linearDamp(0), -		angularDamp(0), -		can_sleep(true), -		omit_forces_integration(false), -		can_integrate_forces(false), -		maxCollisionsDetection(0), -		collisionsCount(0), -		prev_collision_count(0), -		maxAreasWhereIam(10), -		areaWhereIamCount(0), -		countGravityPointSpaces(0), -		isScratchedSpaceOverrideModificator(false), -		previousActiveState(true), -		force_integration_callback(nullptr) { +		RigidCollisionObjectBullet(CollisionObjectBullet::TYPE_RIGID_BODY) {  	godotMotionState = bulletnew(GodotMotionState(this)); diff --git a/modules/bullet/rigid_body_bullet.h b/modules/bullet/rigid_body_bullet.h index 420b5cc443..f94dea8036 100644 --- a/modules/bullet/rigid_body_bullet.h +++ b/modules/bullet/rigid_body_bullet.h @@ -162,11 +162,10 @@ public:  	/// Used to hold shapes  	struct KinematicShape { -		class btConvexShape *shape; +		class btConvexShape *shape = nullptr;  		btTransform transform; -		KinematicShape() : -				shape(nullptr) {} +		KinematicShape() {}  		bool is_active() const { return shape; }  	}; @@ -190,19 +189,19 @@ private:  	friend class BulletPhysicsDirectBodyState3D;  	// This is required only for Kinematic movement -	KinematicUtilities *kinematic_utilities; +	KinematicUtilities *kinematic_utilities = nullptr;  	PhysicsServer3D::BodyMode mode;  	GodotMotionState *godotMotionState;  	btRigidBody *btBody; -	uint16_t locked_axis; -	real_t mass; -	real_t gravity_scale; -	real_t linearDamp; -	real_t angularDamp; -	bool can_sleep; -	bool omit_forces_integration; -	bool can_integrate_forces; +	uint16_t locked_axis = 0; +	real_t mass = 1; +	real_t gravity_scale = 1; +	real_t linearDamp = 0; +	real_t angularDamp = 0; +	bool can_sleep = true; +	bool omit_forces_integration = false; +	bool can_integrate_forces = false;  	Vector<CollisionData> collisions;  	Vector<RigidBodyBullet *> collision_traces_1; @@ -211,21 +210,21 @@ private:  	Vector<RigidBodyBullet *> *curr_collision_traces;  	// these parameters are used to avoid vector resize -	int maxCollisionsDetection; -	int collisionsCount; -	int prev_collision_count; +	int maxCollisionsDetection = 0; +	int collisionsCount = 0; +	int prev_collision_count = 0;  	Vector<AreaBullet *> areasWhereIam;  	// these parameters are used to avoid vector resize -	int maxAreasWhereIam; -	int areaWhereIamCount; +	int maxAreasWhereIam = 10; +	int areaWhereIamCount = 0;  	// Used to know if the area is used as gravity point -	int countGravityPointSpaces; -	bool isScratchedSpaceOverrideModificator; +	int countGravityPointSpaces = 0; +	bool isScratchedSpaceOverrideModificator = false; -	bool previousActiveState; // Last check state +	bool previousActiveState = true; // Last check state -	ForceIntegrationCallback *force_integration_callback; +	ForceIntegrationCallback *force_integration_callback = nullptr;  public:  	RigidBodyBullet(); diff --git a/modules/bullet/shape_bullet.cpp b/modules/bullet/shape_bullet.cpp index 5bcb4743c9..e3b869ad8d 100644 --- a/modules/bullet/shape_bullet.cpp +++ b/modules/bullet/shape_bullet.cpp @@ -46,8 +46,7 @@  	@author AndreaCatania  */ -ShapeBullet::ShapeBullet() : -		margin(0.04) {} +ShapeBullet::ShapeBullet() {}  ShapeBullet::~ShapeBullet() {} @@ -362,8 +361,7 @@ btCollisionShape *ConvexPolygonShapeBullet::create_bt_shape(const btVector3 &p_i  /* Concave polygon */  ConcavePolygonShapeBullet::ConcavePolygonShapeBullet() : -		ShapeBullet(), -		meshShape(nullptr) {} +		ShapeBullet() {}  ConcavePolygonShapeBullet::~ConcavePolygonShapeBullet() {  	if (meshShape) { @@ -563,9 +561,7 @@ btCollisionShape *HeightMapShapeBullet::create_bt_shape(const btVector3 &p_impli  /* Ray shape */  RayShapeBullet::RayShapeBullet() : -		ShapeBullet(), -		length(1), -		slips_on_slope(false) {} +		ShapeBullet() {}  void RayShapeBullet::set_data(const Variant &p_data) { diff --git a/modules/bullet/shape_bullet.h b/modules/bullet/shape_bullet.h index 0dbc616fe5..88b62b6dc9 100644 --- a/modules/bullet/shape_bullet.h +++ b/modules/bullet/shape_bullet.h @@ -52,7 +52,7 @@ class btBvhTriangleMeshShape;  class ShapeBullet : public RIDBullet {  	Map<ShapeOwnerBullet *, int> owners; -	real_t margin; +	real_t margin = 0.04;  protected:  	/// return self @@ -200,7 +200,7 @@ private:  };  class ConcavePolygonShapeBullet : public ShapeBullet { -	class btBvhTriangleMeshShape *meshShape; +	class btBvhTriangleMeshShape *meshShape = nullptr;  public:  	Vector<Vector3> faces; @@ -240,8 +240,8 @@ private:  class RayShapeBullet : public ShapeBullet {  public: -	real_t length; -	bool slips_on_slope; +	real_t length = 1; +	bool slips_on_slope = false;  	RayShapeBullet(); diff --git a/modules/bullet/soft_body_bullet.cpp b/modules/bullet/soft_body_bullet.cpp index 236bdc7c8a..bbaa23e064 100644 --- a/modules/bullet/soft_body_bullet.cpp +++ b/modules/bullet/soft_body_bullet.cpp @@ -36,18 +36,7 @@  #include "space_bullet.h"  SoftBodyBullet::SoftBodyBullet() : -		CollisionObjectBullet(CollisionObjectBullet::TYPE_SOFT_BODY), -		bt_soft_body(nullptr), -		isScratched(false), -		simulation_precision(5), -		total_mass(1.), -		linear_stiffness(0.5), -		areaAngular_stiffness(0.5), -		volume_stiffness(0.5), -		pressure_coefficient(0.), -		pose_matching_coefficient(0.), -		damping_coefficient(0.01), -		drag_coefficient(0.) {} +		CollisionObjectBullet(CollisionObjectBullet::TYPE_SOFT_BODY) {}  SoftBodyBullet::~SoftBodyBullet() {  } diff --git a/modules/bullet/soft_body_bullet.h b/modules/bullet/soft_body_bullet.h index 3c6871e0d6..d28af7d61d 100644 --- a/modules/bullet/soft_body_bullet.h +++ b/modules/bullet/soft_body_bullet.h @@ -58,22 +58,22 @@  class SoftBodyBullet : public CollisionObjectBullet {  private: -	btSoftBody *bt_soft_body; +	btSoftBody *bt_soft_body = nullptr;  	Vector<Vector<int>> indices_table;  	btSoftBody::Material *mat0; // This is just a copy of pointer managed by btSoftBody -	bool isScratched; +	bool isScratched = false;  	Ref<Mesh> soft_mesh; -	int simulation_precision; -	real_t total_mass; -	real_t linear_stiffness; // [0,1] -	real_t areaAngular_stiffness; // [0,1] -	real_t volume_stiffness; // [0,1] -	real_t pressure_coefficient; // [-inf,+inf] -	real_t pose_matching_coefficient; // [0,1] -	real_t damping_coefficient; // [0,1] -	real_t drag_coefficient; // [0,1] +	int simulation_precision = 5; +	real_t total_mass = 1.; +	real_t linear_stiffness = 0.5; // [0,1] +	real_t areaAngular_stiffness = 0.5; // [0,1] +	real_t volume_stiffness = 0.5; // [0,1] +	real_t pressure_coefficient = 0.; // [-inf,+inf] +	real_t pose_matching_coefficient = 0.; // [0,1] +	real_t damping_coefficient = 0.01; // [0,1] +	real_t drag_coefficient = 0.; // [0,1]  	Vector<int> pinned_nodes;  	// Other property to add diff --git a/modules/bullet/space_bullet.cpp b/modules/bullet/space_bullet.cpp index d49e635fd5..cc6ecbed07 100644 --- a/modules/bullet/space_bullet.cpp +++ b/modules/bullet/space_bullet.cpp @@ -331,22 +331,7 @@ Vector3 BulletPhysicsDirectSpaceState::get_closest_point_to_object_volume(RID p_  	}  } -SpaceBullet::SpaceBullet() : -		broadphase(nullptr), -		collisionConfiguration(nullptr), -		dispatcher(nullptr), -		solver(nullptr), -		dynamicsWorld(nullptr), -		soft_body_world_info(nullptr), -		ghostPairCallback(nullptr), -		godotFilterCallback(nullptr), -		gravityDirection(0, -1, 0), -		gravityMagnitude(10), -		linear_damp(0.0), -		angular_damp(0.0), -		contactDebugCount(0), -		delta_time(0.) { - +SpaceBullet::SpaceBullet() {  	create_empty_world(GLOBAL_DEF("physics/3d/active_soft_world", true));  	direct_access = memnew(BulletPhysicsDirectSpaceState(this));  } diff --git a/modules/bullet/space_bullet.h b/modules/bullet/space_bullet.h index 0173c5a1c7..6fe4571bba 100644 --- a/modules/bullet/space_bullet.h +++ b/modules/bullet/space_bullet.h @@ -92,30 +92,30 @@ class SpaceBullet : public RIDBullet {  	friend void onBulletTickCallback(btDynamicsWorld *world, btScalar timeStep);  	friend class BulletPhysicsDirectSpaceState; -	btBroadphaseInterface *broadphase; -	btDefaultCollisionConfiguration *collisionConfiguration; -	btCollisionDispatcher *dispatcher; -	btConstraintSolver *solver; -	btDiscreteDynamicsWorld *dynamicsWorld; -	btSoftBodyWorldInfo *soft_body_world_info; -	btGhostPairCallback *ghostPairCallback; -	GodotFilterCallback *godotFilterCallback; +	btBroadphaseInterface *broadphase = nullptr; +	btDefaultCollisionConfiguration *collisionConfiguration = nullptr; +	btCollisionDispatcher *dispatcher = nullptr; +	btConstraintSolver *solver = nullptr; +	btDiscreteDynamicsWorld *dynamicsWorld = nullptr; +	btSoftBodyWorldInfo *soft_body_world_info = nullptr; +	btGhostPairCallback *ghostPairCallback = nullptr; +	GodotFilterCallback *godotFilterCallback = nullptr;  	btGjkEpaPenetrationDepthSolver *gjk_epa_pen_solver;  	btVoronoiSimplexSolver *gjk_simplex_solver;  	BulletPhysicsDirectSpaceState *direct_access; -	Vector3 gravityDirection; -	real_t gravityMagnitude; +	Vector3 gravityDirection = Vector3(0, -1, 0); +	real_t gravityMagnitude = 10; -	real_t linear_damp; -	real_t angular_damp; +	real_t linear_damp = 0.0; +	real_t angular_damp = 0.0;  	Vector<AreaBullet *> areas;  	Vector<Vector3> contactDebug; -	int contactDebugCount; -	real_t delta_time; +	int contactDebugCount = 0; +	real_t delta_time = 0.;  public:  	SpaceBullet(); @@ -194,22 +194,15 @@ private:  	void check_body_collision();  	struct RecoverResult { -		bool hasPenetration; -		btVector3 normal; -		btVector3 pointWorld; -		btScalar penetration_distance; // Negative mean penetration -		int other_compound_shape_index; -		const btCollisionObject *other_collision_object; -		int local_shape_most_recovered; - -		RecoverResult() : -				hasPenetration(false), -				normal(0, 0, 0), -				pointWorld(0, 0, 0), -				penetration_distance(1e20), -				other_compound_shape_index(0), -				other_collision_object(nullptr), -				local_shape_most_recovered(0) {} +		bool hasPenetration = false; +		btVector3 normal = btVector3(0, 0, 0); +		btVector3 pointWorld = btVector3(0, 0, 0); +		btScalar penetration_distance = 1e20; // Negative mean penetration +		int other_compound_shape_index = 0; +		const btCollisionObject *other_collision_object = nullptr; +		int local_shape_most_recovered = 0; + +		RecoverResult() {}  	};  	bool recover_from_penetration(RigidBodyBullet *p_body, const btTransform &p_body_position, btScalar p_recover_movement_scale, bool p_infinite_inertia, btVector3 &r_delta_recover_movement, RecoverResult *r_recover_result = nullptr); diff --git a/modules/gdnative/nativescript/nativescript.h b/modules/gdnative/nativescript/nativescript.h index 7e7598e06c..d24b247e59 100644 --- a/modules/gdnative/nativescript/nativescript.h +++ b/modules/gdnative/nativescript/nativescript.h @@ -43,6 +43,7 @@  #include "scene/main/node.h"  #include "modules/gdnative/gdnative.h" +  #include <nativescript/godot_nativescript.h>  struct NativeScriptDesc { @@ -54,6 +55,7 @@ struct NativeScriptDesc {  		uint16_t rpc_method_id;  		String documentation;  	}; +  	struct Property {  		godot_property_set_func setter;  		godot_property_get_func getter; @@ -69,9 +71,9 @@ struct NativeScriptDesc {  		String documentation;  	}; -	uint16_t rpc_count; +	uint16_t rpc_count = 0;  	Map<StringName, Method> methods; -	uint16_t rset_count; +	uint16_t rset_count = 0;  	OrderedHashMap<StringName, Property> properties;  	Map<StringName, Signal> signals_; // QtCreator doesn't like the name signals  	StringName base; @@ -82,20 +84,11 @@ struct NativeScriptDesc {  	String documentation; -	const void *type_tag; +	const void *type_tag = nullptr;  	bool is_tool; -	inline NativeScriptDesc() : -			rpc_count(0), -			methods(), -			rset_count(0), -			properties(), -			signals_(), -			base(), -			base_native_type(), -			documentation(), -			type_tag(nullptr) { +	inline NativeScriptDesc() {  		zeromem(&create_func, sizeof(godot_instance_create_func));  		zeromem(&destroy_func, sizeof(godot_instance_destroy_func));  	} @@ -396,14 +389,13 @@ inline NativeScriptDesc *NativeScript::get_script_desc() const {  class NativeReloadNode : public Node {  	GDCLASS(NativeReloadNode, Node); -	bool unloaded; +	bool unloaded = false;  public:  	static void _bind_methods();  	void _notification(int p_what); -	NativeReloadNode() : -			unloaded(false) {} +	NativeReloadNode() {}  };  class ResourceFormatLoaderNativeScript : public ResourceFormatLoader { diff --git a/modules/gdnative/pluginscript/pluginscript_script.cpp b/modules/gdnative/pluginscript/pluginscript_script.cpp index 6b303c8716..9b00d654d1 100644 --- a/modules/gdnative/pluginscript/pluginscript_script.cpp +++ b/modules/gdnative/pluginscript/pluginscript_script.cpp @@ -550,11 +550,6 @@ MultiplayerAPI::RPCMode PluginScript::get_rset_mode(const StringName &p_variable  }  PluginScript::PluginScript() : -		_data(nullptr), -		_desc(nullptr), -		_language(nullptr), -		_tool(false), -		_valid(false),  		_script_list(this) {  } diff --git a/modules/gdnative/pluginscript/pluginscript_script.h b/modules/gdnative/pluginscript/pluginscript_script.h index 70b9ca980b..287f42bf7b 100644 --- a/modules/gdnative/pluginscript/pluginscript_script.h +++ b/modules/gdnative/pluginscript/pluginscript_script.h @@ -45,11 +45,11 @@ class PluginScript : public Script {  	friend class PluginScriptLanguage;  private: -	godot_pluginscript_script_data *_data; -	const godot_pluginscript_script_desc *_desc; -	PluginScriptLanguage *_language; -	bool _tool; -	bool _valid; +	godot_pluginscript_script_data *_data = nullptr; +	const godot_pluginscript_script_desc *_desc = nullptr; +	PluginScriptLanguage *_language = nullptr; +	bool _tool = false; +	bool _valid = false;  	Ref<Script> _ref_base_parent;  	StringName _native_parent; diff --git a/modules/gdnative/videodecoder/video_stream_gdnative.cpp b/modules/gdnative/videodecoder/video_stream_gdnative.cpp index f7d87595af..a2ff376e31 100644 --- a/modules/gdnative/videodecoder/video_stream_gdnative.cpp +++ b/modules/gdnative/videodecoder/video_stream_gdnative.cpp @@ -202,22 +202,7 @@ void VideoStreamPlaybackGDNative::update_texture() {  // ctor and dtor  VideoStreamPlaybackGDNative::VideoStreamPlaybackGDNative() : -		texture(Ref<ImageTexture>(memnew(ImageTexture))), -		playing(false), -		paused(false), -		mix_udata(nullptr), -		mix_callback(nullptr), -		num_channels(-1), -		time(0), -		seek_backward(false), -		mix_rate(0), -		delay_compensation(0), -		pcm(nullptr), -		pcm_write_idx(0), -		samples_decoded(0), -		file(nullptr), -		interface(nullptr), -		data_struct(nullptr) {} +		texture(Ref<ImageTexture>(memnew(ImageTexture))) {}  VideoStreamPlaybackGDNative::~VideoStreamPlaybackGDNative() {  	cleanup(); diff --git a/modules/gdnative/videodecoder/video_stream_gdnative.h b/modules/gdnative/videodecoder/video_stream_gdnative.h index 092e10a0f5..f1bae22801 100644 --- a/modules/gdnative/videodecoder/video_stream_gdnative.h +++ b/modules/gdnative/videodecoder/video_stream_gdnative.h @@ -37,13 +37,11 @@  #include "scene/resources/video_stream.h"  struct VideoDecoderGDNative { -	const godot_videodecoder_interface_gdnative *interface; -	String plugin_name; +	const godot_videodecoder_interface_gdnative *interface = nullptr; +	String plugin_name = "none";  	Vector<String> supported_extensions; -	VideoDecoderGDNative() : -			interface(nullptr), -			plugin_name("none") {} +	VideoDecoderGDNative() {}  	VideoDecoderGDNative(const godot_videodecoder_interface_gdnative *p_interface) :  			interface(p_interface), @@ -111,23 +109,23 @@ class VideoStreamPlaybackGDNative : public VideoStreamPlayback {  	GDCLASS(VideoStreamPlaybackGDNative, VideoStreamPlayback);  	Ref<ImageTexture> texture; -	bool playing; -	bool paused; +	bool playing = false; +	bool paused = false;  	Vector2 texture_size; -	void *mix_udata; -	AudioMixCallback mix_callback; +	void *mix_udata = nullptr; +	AudioMixCallback mix_callback = nullptr; -	int num_channels; -	float time; -	bool seek_backward; -	int mix_rate; -	double delay_compensation; +	int num_channels = -1; +	float time = 0; +	bool seek_backward = false; +	int mix_rate = 0; +	double delay_compensation = 0; -	float *pcm; -	int pcm_write_idx; -	int samples_decoded; +	float *pcm = nullptr; +	int pcm_write_idx = 0; +	int samples_decoded = 0;  	void cleanup();  	void update_texture(); @@ -135,10 +133,10 @@ class VideoStreamPlaybackGDNative : public VideoStreamPlayback {  protected:  	String file_name; -	FileAccess *file; +	FileAccess *file = nullptr; -	const godot_videodecoder_interface_gdnative *interface; -	void *data_struct; +	const godot_videodecoder_interface_gdnative *interface = nullptr; +	void *data_struct = nullptr;  public:  	VideoStreamPlaybackGDNative(); @@ -181,7 +179,7 @@ class VideoStreamGDNative : public VideoStream {  	GDCLASS(VideoStreamGDNative, VideoStream);  	String file; -	int audio_track; +	int audio_track = 0;  protected:  	static void @@ -194,7 +192,7 @@ public:  	virtual void set_audio_track(int p_track);  	virtual Ref<VideoStreamPlayback> instance_playback(); -	VideoStreamGDNative() { audio_track = 0; } +	VideoStreamGDNative() {}  };  class ResourceFormatLoaderVideoStreamGDNative : public ResourceFormatLoader { diff --git a/modules/gdnavigation/gd_navigation_server.cpp b/modules/gdnavigation/gd_navigation_server.cpp index 278c27ae22..3792098af4 100644 --- a/modules/gdnavigation/gd_navigation_server.cpp +++ b/modules/gdnavigation/gd_navigation_server.cpp @@ -114,8 +114,7 @@  	void GdNavigationServer::MERGE(_cmd_, F_NAME)(T_0 D_0, T_1 D_1, T_2 D_2, T_3 D_3)  GdNavigationServer::GdNavigationServer() : -		NavigationServer3D(), -		active(true) { +		NavigationServer3D() {  }  GdNavigationServer::~GdNavigationServer() { diff --git a/modules/gdnavigation/gd_navigation_server.h b/modules/gdnavigation/gd_navigation_server.h index 01d1a4fba9..e3e02f3d7c 100644 --- a/modules/gdnavigation/gd_navigation_server.h +++ b/modules/gdnavigation/gd_navigation_server.h @@ -78,7 +78,7 @@ class GdNavigationServer : public NavigationServer3D {  	mutable RID_PtrOwner<NavRegion> region_owner;  	mutable RID_PtrOwner<RvoAgent> agent_owner; -	bool active; +	bool active = true;  	Vector<NavMap *> active_maps;  public: diff --git a/modules/gdnavigation/nav_map.cpp b/modules/gdnavigation/nav_map.cpp index 7e6a3f7a26..d6dd95d6e7 100644 --- a/modules/gdnavigation/nav_map.cpp +++ b/modules/gdnavigation/nav_map.cpp @@ -33,6 +33,7 @@  #include "core/os/threaded_array_processor.h"  #include "nav_region.h"  #include "rvo_agent.h" +  #include <algorithm>  /** @@ -41,16 +42,6 @@  #define USE_ENTRY_POINT -NavMap::NavMap() : -		up(0, 1, 0), -		cell_size(0.3), -		edge_connection_margin(5.0), -		regenerate_polygons(true), -		regenerate_links(true), -		agents_dirty(false), -		deltatime(0.0), -		map_update_id(0) {} -  void NavMap::set_up(Vector3 p_up) {  	up = p_up;  	regenerate_polygons = true; diff --git a/modules/gdnavigation/nav_map.h b/modules/gdnavigation/nav_map.h index 4543f00926..d39e301511 100644 --- a/modules/gdnavigation/nav_map.h +++ b/modules/gdnavigation/nav_map.h @@ -48,17 +48,17 @@ class NavRegion;  class NavMap : public NavRid {  	/// Map Up -	Vector3 up; +	Vector3 up = Vector3(0, 1, 0);  	/// To find the polygons edges the vertices are displaced in a grid where  	/// each cell has the following cell_size. -	real_t cell_size; +	real_t cell_size = 0.3;  	/// This value is used to detect the near edges to connect. -	real_t edge_connection_margin; +	real_t edge_connection_margin = 5.0; -	bool regenerate_polygons; -	bool regenerate_links; +	bool regenerate_polygons = true; +	bool regenerate_links = true;  	std::vector<NavRegion *> regions; @@ -69,7 +69,7 @@ class NavMap : public NavRid {  	RVO::KdTree rvo;  	/// Is agent array modified? -	bool agents_dirty; +	bool agents_dirty = false;  	/// All the Agents (even the controlled one)  	std::vector<RvoAgent *> agents; @@ -78,13 +78,13 @@ class NavMap : public NavRid {  	std::vector<RvoAgent *> controlled_agents;  	/// Physics delta time -	real_t deltatime; +	real_t deltatime = 0.0;  	/// Change the id each time the map is updated. -	uint32_t map_update_id; +	uint32_t map_update_id = 0;  public: -	NavMap(); +	NavMap() {}  	void set_up(Vector3 p_up);  	Vector3 get_up() const { diff --git a/modules/gdnavigation/nav_region.cpp b/modules/gdnavigation/nav_region.cpp index b91376f761..2bd42ba980 100644 --- a/modules/gdnavigation/nav_region.cpp +++ b/modules/gdnavigation/nav_region.cpp @@ -36,11 +36,6 @@  	@author AndreaCatania  */ -NavRegion::NavRegion() : -		map(nullptr), -		polygons_dirty(true) { -} -  void NavRegion::set_map(NavMap *p_map) {  	map = p_map;  	polygons_dirty = true; diff --git a/modules/gdnavigation/nav_region.h b/modules/gdnavigation/nav_region.h index f35ee4bea0..731855bfb5 100644 --- a/modules/gdnavigation/nav_region.h +++ b/modules/gdnavigation/nav_region.h @@ -45,17 +45,17 @@ class NavMap;  class NavRegion;  class NavRegion : public NavRid { -	NavMap *map; +	NavMap *map = nullptr;  	Transform transform;  	Ref<NavigationMesh> mesh; -	bool polygons_dirty; +	bool polygons_dirty = true;  	/// Cache  	std::vector<gd::Polygon> polygons;  public: -	NavRegion(); +	NavRegion() {}  	void scratch_polygons() {  		polygons_dirty = true; diff --git a/modules/gdnavigation/nav_utils.h b/modules/gdnavigation/nav_utils.h index 3401284c31..388e53a66a 100644 --- a/modules/gdnavigation/nav_utils.h +++ b/modules/gdnavigation/nav_utils.h @@ -32,6 +32,7 @@  #define NAV_UTILS_H  #include "core/math/vector3.h" +  #include <vector>  /** @@ -80,19 +81,15 @@ struct Point {  struct Edge {  	/// This edge ID -	int this_edge; +	int this_edge = -1;  	/// Other Polygon -	Polygon *other_polygon; +	Polygon *other_polygon = nullptr;  	/// The other `Polygon` at this edge id has this `Polygon`. -	int other_edge; +	int other_edge = -1; -	Edge() { -		this_edge = -1; -		other_polygon = nullptr; -		other_edge = -1; -	} +	Edge() {}  };  struct Polygon { @@ -113,39 +110,29 @@ struct Polygon {  struct Connection { -	Polygon *A; -	int A_edge; -	Polygon *B; -	int B_edge; +	Polygon *A = nullptr; +	int A_edge = -1; +	Polygon *B = nullptr; +	int B_edge = -1; -	Connection() { -		A = nullptr; -		B = nullptr; -		A_edge = -1; -		B_edge = -1; -	} +	Connection() {}  };  struct NavigationPoly { -	uint32_t self_id; +	uint32_t self_id = 0;  	/// This poly.  	const Polygon *poly;  	/// The previous navigation poly (id in the `navigation_poly` array). -	int prev_navigation_poly_id; +	int prev_navigation_poly_id = -1;  	/// The edge id in this `Poly` to reach the `prev_navigation_poly_id`. -	uint32_t back_navigation_edge; +	uint32_t back_navigation_edge = 0;  	/// The entry location of this poly.  	Vector3 entry;  	/// The distance to the destination. -	float traveled_distance; +	float traveled_distance = 0.0;  	NavigationPoly(const Polygon *p_poly) : -			self_id(0), -			poly(p_poly), -			prev_navigation_poly_id(-1), -			back_navigation_edge(0), -			traveled_distance(0.0) { -	} +			poly(p_poly) {}  	bool operator==(const NavigationPoly &other) const {  		return this->poly == other.poly; diff --git a/modules/gdnavigation/rvo_agent.cpp b/modules/gdnavigation/rvo_agent.cpp index 3c39f02c26..1e1bdbd07d 100644 --- a/modules/gdnavigation/rvo_agent.cpp +++ b/modules/gdnavigation/rvo_agent.cpp @@ -36,8 +36,7 @@  	@author AndreaCatania  */ -RvoAgent::RvoAgent() : -		map(nullptr) { +RvoAgent::RvoAgent() {  	callback.id = ObjectID();  } diff --git a/modules/gdnavigation/rvo_agent.h b/modules/gdnavigation/rvo_agent.h index 914cbaa7d9..f5c579ba84 100644 --- a/modules/gdnavigation/rvo_agent.h +++ b/modules/gdnavigation/rvo_agent.h @@ -49,7 +49,7 @@ class RvoAgent : public NavRid {  		Variant new_velocity;  	}; -	NavMap *map; +	NavMap *map = nullptr;  	RVO::Agent agent;  	AvoidanceComputedCallback callback;  	uint32_t map_update_id; diff --git a/modules/gdscript/gdscript.h b/modules/gdscript/gdscript.h index b7ac2bd0c5..3cba621578 100644 --- a/modules/gdscript/gdscript.h +++ b/modules/gdscript/gdscript.h @@ -334,18 +334,18 @@ struct GDScriptWarning {  		DEPRECATED_KEYWORD, // The keyword is deprecated and should be replaced  		STANDALONE_TERNARY, // Return value of ternary expression is discarded  		WARNING_MAX, -	} code; +	}; + +	Code code = WARNING_MAX;  	Vector<String> symbols; -	int line; +	int line = -1;  	String get_name() const;  	String get_message() const;  	static String get_name_from_code(Code p_code);  	static Code get_code_from_name(const String &p_name); -	GDScriptWarning() : -			code(WARNING_MAX), -			line(-1) {} +	GDScriptWarning() {}  };  #endif // DEBUG_ENABLED diff --git a/modules/gdscript/gdscript_editor.cpp b/modules/gdscript/gdscript_editor.cpp index 8af98c187f..56381e8af7 100644 --- a/modules/gdscript/gdscript_editor.cpp +++ b/modules/gdscript/gdscript_editor.cpp @@ -492,31 +492,24 @@ String GDScriptLanguage::make_function(const String &p_class, const String &p_na  struct GDScriptCompletionContext { -	const GDScriptParser::ClassNode *_class; -	const GDScriptParser::FunctionNode *function; -	const GDScriptParser::BlockNode *block; -	Object *base; +	const GDScriptParser::ClassNode *_class = nullptr; +	const GDScriptParser::FunctionNode *function = nullptr; +	const GDScriptParser::BlockNode *block = nullptr; +	Object *base = nullptr;  	String base_path; -	int line; -	uint32_t depth; - -	GDScriptCompletionContext() : -			_class(nullptr), -			function(nullptr), -			block(nullptr), -			base(nullptr), -			line(0), -			depth(0) {} +	int line = 0; +	uint32_t depth = 0; + +	GDScriptCompletionContext() {}  };  struct GDScriptCompletionIdentifier {  	GDScriptParser::DataType type;  	String enumeration;  	Variant value; -	const GDScriptParser::Node *assigned_expression; +	const GDScriptParser::Node *assigned_expression = nullptr; -	GDScriptCompletionIdentifier() : -			assigned_expression(nullptr) {} +	GDScriptCompletionIdentifier() {}  };  static void _get_directory_contents(EditorFileSystemDirectory *p_dir, Map<String, ScriptCodeCompletionOption> &r_list) { diff --git a/modules/gdscript/gdscript_function.h b/modules/gdscript/gdscript_function.h index 89dbeacf34..7043c9b69b 100644 --- a/modules/gdscript/gdscript_function.h +++ b/modules/gdscript/gdscript_function.h @@ -43,15 +43,18 @@ class GDScriptInstance;  class GDScript;  struct GDScriptDataType { -	bool has_type; -	enum { +	enum Kind {  		UNINITIALIZED,  		BUILTIN,  		NATIVE,  		SCRIPT,  		GDSCRIPT, -	} kind; -	Variant::Type builtin_type; +	}; + +	Kind kind = UNINITIALIZED; + +	bool has_type = false; +	Variant::Type builtin_type = Variant::NIL;  	StringName native_type;  	Ref<Script> script_type; @@ -147,10 +150,7 @@ struct GDScriptDataType {  		return info;  	} -	GDScriptDataType() : -			has_type(false), -			kind(UNINITIALIZED), -			builtin_type(Variant::NIL) {} +	GDScriptDataType() {}  };  class GDScriptFunction { diff --git a/modules/gdscript/gdscript_parser.h b/modules/gdscript/gdscript_parser.h index 834bab02a4..035af30b6a 100644 --- a/modules/gdscript/gdscript_parser.h +++ b/modules/gdscript/gdscript_parser.h @@ -45,25 +45,27 @@ public:  	struct ClassNode;  	struct DataType { -		enum { +		enum Kind {  			BUILTIN,  			NATIVE,  			SCRIPT,  			GDSCRIPT,  			CLASS,  			UNRESOLVED -		} kind; +		}; + +		Kind kind = UNRESOLVED; -		bool has_type; -		bool is_constant; -		bool is_meta_type; // Whether the value can be used as a type -		bool infer_type; -		bool may_yield; // For function calls +		bool has_type = false; +		bool is_constant = false; +		bool is_meta_type = false; // Whether the value can be used as a type +		bool infer_type = false; +		bool may_yield = false; // For function calls -		Variant::Type builtin_type; +		Variant::Type builtin_type = Variant::NIL;  		StringName native_type;  		Ref<Script> script_type; -		ClassNode *class_type; +		ClassNode *class_type = nullptr;  		String to_string() const; @@ -94,15 +96,7 @@ public:  			return false;  		} -		DataType() : -				kind(UNRESOLVED), -				has_type(false), -				is_constant(false), -				is_meta_type(false), -				infer_type(false), -				may_yield(false), -				builtin_type(Variant::NIL), -				class_type(nullptr) {} +		DataType() {}  	};  	struct Node { @@ -236,66 +230,63 @@ public:  	struct BlockNode : public Node { -		ClassNode *parent_class; -		BlockNode *parent_block; +		ClassNode *parent_class = nullptr; +		BlockNode *parent_block = nullptr;  		List<Node *> statements;  		Map<StringName, LocalVarNode *> variables; -		bool has_return; +		bool has_return = false; -		Node *if_condition; //tiny hack to improve code completion on if () blocks +		Node *if_condition = nullptr; //tiny hack to improve code completion on if () blocks  		//the following is useful for code completion  		List<BlockNode *> sub_blocks; -		int end_line; +		int end_line = -1; +  		BlockNode() { -			if_condition = nullptr;  			type = TYPE_BLOCK; -			end_line = -1; -			parent_block = nullptr; -			parent_class = nullptr; -			has_return = false;  		}  	};  	struct TypeNode : public Node { -  		Variant::Type vtype; -		TypeNode() { type = TYPE_TYPE; } + +		TypeNode() { +			type = TYPE_TYPE; +		}  	}; +  	struct BuiltInFunctionNode : public Node {  		GDScriptFunctions::Function function; -		BuiltInFunctionNode() { type = TYPE_BUILT_IN_FUNCTION; } + +		BuiltInFunctionNode() { +			type = TYPE_BUILT_IN_FUNCTION; +		}  	};  	struct IdentifierNode : public Node { -  		StringName name; -		BlockNode *declared_block; // Simplify lookup by checking if it is declared locally +		BlockNode *declared_block = nullptr; // Simplify lookup by checking if it is declared locally  		DataType datatype;  		virtual DataType get_datatype() const { return datatype; }  		virtual void set_datatype(const DataType &p_datatype) { datatype = p_datatype; } +  		IdentifierNode() {  			type = TYPE_IDENTIFIER; -			declared_block = nullptr;  		}  	};  	struct LocalVarNode : public Node { -  		StringName name; -		Node *assign; -		OperatorNode *assign_op; -		int assignments; -		int usages; +		Node *assign = nullptr; +		OperatorNode *assign_op = nullptr; +		int assignments = 0; +		int usages = 0;  		DataType datatype;  		virtual DataType get_datatype() const { return datatype; }  		virtual void set_datatype(const DataType &p_datatype) { datatype = p_datatype; } +  		LocalVarNode() {  			type = TYPE_LOCAL_VAR; -			assign = nullptr; -			assign_op = nullptr; -			assignments = 0; -			usages = 0;  		}  	}; @@ -304,15 +295,18 @@ public:  		DataType datatype;  		virtual DataType get_datatype() const { return datatype; }  		virtual void set_datatype(const DataType &p_datatype) { datatype = p_datatype; } -		ConstantNode() { type = TYPE_CONSTANT; } + +		ConstantNode() { +			type = TYPE_CONSTANT; +		}  	};  	struct ArrayNode : public Node { -  		Vector<Node *> elements;  		DataType datatype;  		virtual DataType get_datatype() const { return datatype; }  		virtual void set_datatype(const DataType &p_datatype) { datatype = p_datatype; } +  		ArrayNode() {  			type = TYPE_ARRAY;  			datatype.has_type = true; @@ -324,7 +318,6 @@ public:  	struct DictionaryNode : public Node {  		struct Pair { -  			Node *key;  			Node *value;  		}; @@ -333,6 +326,7 @@ public:  		DataType datatype;  		virtual DataType get_datatype() const { return datatype; }  		virtual void set_datatype(const DataType &p_datatype) { datatype = p_datatype; } +  		DictionaryNode() {  			type = TYPE_DICTIONARY;  			datatype.has_type = true; @@ -342,7 +336,9 @@ public:  	};  	struct SelfNode : public Node { -		SelfNode() { type = TYPE_SELF; } +		SelfNode() { +			type = TYPE_SELF; +		}  	};  	struct OperatorNode : public Node { @@ -404,7 +400,9 @@ public:  		DataType datatype;  		virtual DataType get_datatype() const { return datatype; }  		virtual void set_datatype(const DataType &p_datatype) { datatype = p_datatype; } -		OperatorNode() { type = TYPE_OPERATOR; } +		OperatorNode() { +			type = TYPE_OPERATOR; +		}  	};  	struct PatternNode : public Node { @@ -454,19 +452,17 @@ public:  			CF_MATCH  		}; -		CFType cf_type; +		CFType cf_type = CF_IF;  		Vector<Node *> arguments; -		BlockNode *body; -		BlockNode *body_else; +		BlockNode *body = nullptr; +		BlockNode *body_else = nullptr;  		MatchNode *match;  		ControlFlowNode *_else; //used for if +  		ControlFlowNode() {  			type = TYPE_CONTROL_FLOW; -			cf_type = CF_IF; -			body = nullptr; -			body_else = nullptr;  		}  	}; @@ -476,29 +472,34 @@ public:  		DataType return_type;  		virtual DataType get_datatype() const { return return_type; }  		virtual void set_datatype(const DataType &p_datatype) { return_type = p_datatype; } -		CastNode() { type = TYPE_CAST; } + +		CastNode() { +			type = TYPE_CAST; +		}  	};  	struct AssertNode : public Node { -		Node *condition; -		Node *message; -		AssertNode() : -				condition(0), -				message(0) { +		Node *condition = nullptr; +		Node *message = nullptr; + +		AssertNode() {  			type = TYPE_ASSERT;  		}  	};  	struct BreakpointNode : public Node { -		BreakpointNode() { type = TYPE_BREAKPOINT; } +		BreakpointNode() { +			type = TYPE_BREAKPOINT; +		}  	};  	struct NewLineNode : public Node { -		NewLineNode() { type = TYPE_NEWLINE; } +		NewLineNode() { +			type = TYPE_NEWLINE; +		}  	};  	struct Expression { -  		bool is_op;  		union {  			OperatorNode::Operator op; @@ -553,8 +554,8 @@ private:  	int pending_newline;  	struct IndentLevel { -		int indent; -		int tabs; +		int indent = 0; +		int tabs = 0;  		bool is_mixed(IndentLevel other) {  			return ( @@ -563,9 +564,7 @@ private:  					(indent < other.indent && tabs > other.tabs));  		} -		IndentLevel() : -				indent(0), -				tabs(0) {} +		IndentLevel() {}  		IndentLevel(int p_indent, int p_tabs) :  				indent(p_indent), diff --git a/modules/gdscript/gdscript_tokenizer.h b/modules/gdscript/gdscript_tokenizer.h index 180ec3c77e..76410433de 100644 --- a/modules/gdscript/gdscript_tokenizer.h +++ b/modules/gdscript/gdscript_tokenizer.h @@ -176,7 +176,7 @@ public:  	virtual bool is_ignoring_warnings() const = 0;  #endif // DEBUG_ENABLED -	virtual ~GDScriptTokenizer(){}; +	virtual ~GDScriptTokenizer() {}  };  class GDScriptTokenizerText : public GDScriptTokenizer { diff --git a/modules/mono/csharp_script.h b/modules/mono/csharp_script.h index c9ea482c36..280c981a47 100644 --- a/modules/mono/csharp_script.h +++ b/modules/mono/csharp_script.h @@ -326,17 +326,13 @@ public:  };  struct CSharpScriptBinding { -	bool inited; +	bool inited = false;  	StringName type_name; -	GDMonoClass *wrapper_class; +	GDMonoClass *wrapper_class = nullptr;  	MonoGCHandleData gchandle; -	Object *owner; +	Object *owner = nullptr; -	CSharpScriptBinding() : -			inited(false), -			wrapper_class(nullptr), -			owner(nullptr) { -	} +	CSharpScriptBinding() {}  };  class ManagedCallableMiddleman : public Object { diff --git a/modules/mono/editor/bindings_generator.h b/modules/mono/editor/bindings_generator.h index 5672231e9a..9aad9622d9 100644 --- a/modules/mono/editor/bindings_generator.h +++ b/modules/mono/editor/bindings_generator.h @@ -85,16 +85,12 @@ class BindingsGenerator {  	struct TypeReference {  		StringName cname; -		bool is_enum; +		bool is_enum = false; -		TypeReference() : -				is_enum(false) { -		} +		TypeReference() {}  		TypeReference(const StringName &p_cname) : -				cname(p_cname), -				is_enum(false) { -		} +				cname(p_cname) {}  	};  	struct ArgumentInterface { @@ -107,7 +103,7 @@ class BindingsGenerator {  		TypeReference type;  		String name; -		DefaultParamMode def_param_mode; +		DefaultParamMode def_param_mode = CONSTANT;  		/**  		 * Determines the expression for the parameter default value. @@ -116,9 +112,7 @@ class BindingsGenerator {  		 */  		String default_argument; -		ArgumentInterface() { -			def_param_mode = CONSTANT; -		} +		ArgumentInterface() {}  	};  	struct MethodInterface { @@ -138,19 +132,19 @@ class BindingsGenerator {  		/**  		 * Determines if the method has a variable number of arguments (VarArg)  		 */ -		bool is_vararg; +		bool is_vararg = false;  		/**  		 * Virtual methods ("virtual" as defined by the Godot API) are methods that by default do nothing,  		 * but can be overridden by the user to add custom functionality.  		 * e.g.: _ready, _process, etc.  		 */ -		bool is_virtual; +		bool is_virtual = false;  		/**  		 * Determines if the call should fallback to Godot's object.Call(string, params) in C#.  		 */ -		bool requires_object_call; +		bool requires_object_call = false;  		/**  		 * Determines if the method visibility is 'internal' (visible only to files in the same assembly). @@ -158,27 +152,20 @@ class BindingsGenerator {  		 * but are required by properties as getters or setters.  		 * Methods that are not meant to be exposed are those that begin with underscore and are not virtual.  		 */ -		bool is_internal; +		bool is_internal = false;  		List<ArgumentInterface> arguments; -		const DocData::MethodDoc *method_doc; +		const DocData::MethodDoc *method_doc = nullptr; -		bool is_deprecated; +		bool is_deprecated = false;  		String deprecation_message;  		void add_argument(const ArgumentInterface &argument) {  			arguments.push_back(argument);  		} -		MethodInterface() { -			is_vararg = false; -			is_virtual = false; -			requires_object_call = false; -			is_internal = false; -			method_doc = nullptr; -			is_deprecated = false; -		} +		MethodInterface() {}  	};  	struct SignalInterface { @@ -192,19 +179,16 @@ class BindingsGenerator {  		List<ArgumentInterface> arguments; -		const DocData::MethodDoc *method_doc; +		const DocData::MethodDoc *method_doc = nullptr; -		bool is_deprecated; +		bool is_deprecated = false;  		String deprecation_message;  		void add_argument(const ArgumentInterface &argument) {  			arguments.push_back(argument);  		} -		SignalInterface() { -			method_doc = nullptr; -			is_deprecated = false; -		} +		SignalInterface() {}  	};  	struct TypeInterface { @@ -225,26 +209,26 @@ class BindingsGenerator {  		 */  		String proxy_name; -		ClassDB::APIType api_type; +		ClassDB::APIType api_type = ClassDB::API_NONE; -		bool is_enum; -		bool is_object_type; -		bool is_singleton; -		bool is_reference; +		bool is_enum = false; +		bool is_object_type = false; +		bool is_singleton = false; +		bool is_reference = false;  		/**  		 * Used only by Object-derived types.  		 * Determines if this type is not abstract (incomplete).  		 * e.g.: CanvasItem cannot be instantiated.  		 */ -		bool is_instantiable; +		bool is_instantiable = false;  		/**  		 * Used only by Object-derived types.  		 * Determines if the C# class owns the native handle and must free it somehow when disposed.  		 * e.g.: Reference types must notify when the C# instance is disposed, for proper refcounting.  		 */ -		bool memory_own; +		bool memory_own = false;  		/**  		 * This must be set to true for any struct bigger than 32-bits. Those cannot be passed/returned by value @@ -252,7 +236,7 @@ class BindingsGenerator {  		 * In this case, [c_out] and [cs_out] must have a different format, explained below.  		 * The Mono IL interpreter icall trampolines don't support passing structs bigger than 32-bits by value (at least not on WASM).  		 */ -		bool ret_as_byref_arg; +		bool ret_as_byref_arg = false;  		// !! The comments of the following fields make reference to other fields via square brackets, e.g.: [field_name]  		// !! When renaming those fields, make sure to rename their references in the comments @@ -279,7 +263,7 @@ class BindingsGenerator {  		 * Formatting elements:  		 * %0 or %s: name of the parameter  		 */ -		String c_arg_in; +		String c_arg_in = "%s";  		/**  		 * One or more statements that determine how a variable of this type is returned from a function. @@ -362,7 +346,7 @@ class BindingsGenerator {  		 */  		String im_type_out; -		const DocData::ClassDoc *class_doc; +		const DocData::ClassDoc *class_doc = nullptr;  		List<ConstantInterface> constants;  		List<EnumInterface> enums; @@ -482,24 +466,7 @@ class BindingsGenerator {  			r_enum_itype.class_doc = &EditorHelp::get_doc_data()->class_list[r_enum_itype.proxy_name];  		} -		TypeInterface() { - -			api_type = ClassDB::API_NONE; - -			is_enum = false; -			is_object_type = false; -			is_singleton = false; -			is_reference = false; -			is_instantiable = false; - -			memory_own = false; - -			ret_as_byref_arg = false; - -			c_arg_in = "%s"; - -			class_doc = nullptr; -		} +		TypeInterface() {}  	};  	struct InternalCall { @@ -532,8 +499,8 @@ class BindingsGenerator {  		}  	}; -	bool log_print_enabled; -	bool initialized; +	bool log_print_enabled = true; +	bool initialized = false;  	OrderedHashMap<StringName, TypeInterface> obj_types; @@ -697,9 +664,7 @@ public:  	static void handle_cmdline_args(const List<String> &p_cmdline_args); -	BindingsGenerator() : -			log_print_enabled(true), -			initialized(false) { +	BindingsGenerator() {  		_initialize();  	}  }; diff --git a/modules/mono/mono_gc_handle.h b/modules/mono/mono_gc_handle.h index fbcb405b0d..005ee52b35 100644 --- a/modules/mono/mono_gc_handle.h +++ b/modules/mono/mono_gc_handle.h @@ -47,8 +47,8 @@ enum class GCHandleType : char {  // Manual release of the GC handle must be done when using this struct  struct MonoGCHandleData { -	uint32_t handle; -	gdmono::GCHandleType type; +	uint32_t handle = 0; +	gdmono::GCHandleType type = gdmono::GCHandleType::NIL;  	_FORCE_INLINE_ bool is_released() const { return !handle; }  	_FORCE_INLINE_ bool is_weak() const { return type == gdmono::GCHandleType::WEAK_HANDLE; } @@ -68,10 +68,7 @@ struct MonoGCHandleData {  	MonoGCHandleData(const MonoGCHandleData &) = default; -	MonoGCHandleData() : -			handle(0), -			type(gdmono::GCHandleType::NIL) { -	} +	MonoGCHandleData() {}  	MonoGCHandleData(uint32_t p_handle, gdmono::GCHandleType p_type) :  			handle(p_handle), diff --git a/modules/mono/mono_gd/gd_mono.h b/modules/mono/mono_gd/gd_mono.h index 153ae891f7..3b0be4c180 100644 --- a/modules/mono/mono_gd/gd_mono.h +++ b/modules/mono/mono_gd/gd_mono.h @@ -48,9 +48,9 @@ enum Type {  };  struct Version { -	uint64_t godot_api_hash; -	uint32_t bindings_version; -	uint32_t cs_glue_version; +	uint64_t godot_api_hash = 0; +	uint32_t bindings_version = 0; +	uint32_t cs_glue_version = 0;  	bool operator==(const Version &p_other) const {  		return godot_api_hash == p_other.godot_api_hash && @@ -58,11 +58,7 @@ struct Version {  			   cs_glue_version == p_other.cs_glue_version;  	} -	Version() : -			godot_api_hash(0), -			bindings_version(0), -			cs_glue_version(0) { -	} +	Version() {}  	Version(uint64_t p_godot_api_hash,  			uint32_t p_bindings_version, @@ -87,13 +83,10 @@ public:  	};  	struct LoadedApiAssembly { -		GDMonoAssembly *assembly; -		bool out_of_sync; +		GDMonoAssembly *assembly = nullptr; +		bool out_of_sync = false; -		LoadedApiAssembly() : -				assembly(nullptr), -				out_of_sync(false) { -		} +		LoadedApiAssembly() {}  	};  private: diff --git a/modules/mono/mono_gd/gd_mono_assembly.cpp b/modules/mono/mono_gd/gd_mono_assembly.cpp index da2ed2a7fc..ca84338666 100644 --- a/modules/mono/mono_gd/gd_mono_assembly.cpp +++ b/modules/mono/mono_gd/gd_mono_assembly.cpp @@ -490,18 +490,7 @@ GDMonoAssembly *GDMonoAssembly::load_from(const String &p_name, const String &p_  	return loaded_asm;  } -GDMonoAssembly::GDMonoAssembly(const String &p_name, MonoImage *p_image, MonoAssembly *p_assembly) : -		name(p_name), -		image(p_image), -		assembly(p_assembly), -#ifdef GD_MONO_HOT_RELOAD -		modified_time(0), -#endif -		gdobject_class_cache_updated(false) { -} -  GDMonoAssembly::~GDMonoAssembly() { -  	if (image)  		unload();  } diff --git a/modules/mono/mono_gd/gd_mono_assembly.h b/modules/mono/mono_gd/gd_mono_assembly.h index 7fc1817993..cc8d699558 100644 --- a/modules/mono/mono_gd/gd_mono_assembly.h +++ b/modules/mono/mono_gd/gd_mono_assembly.h @@ -73,10 +73,10 @@ class GDMonoAssembly {  	MonoAssembly *assembly;  #ifdef GD_MONO_HOT_RELOAD -	uint64_t modified_time; +	uint64_t modified_time = 0;  #endif -	bool gdobject_class_cache_updated; +	bool gdobject_class_cache_updated = false;  	Map<StringName, GDMonoClass *> gdobject_class_cache;  	HashMap<ClassKey, GDMonoClass *, ClassKey::Hasher> cached_classes; @@ -125,7 +125,11 @@ public:  	static GDMonoAssembly *load(const String &p_name, MonoAssemblyName *p_aname, bool p_refonly, const Vector<String> &p_search_dirs);  	static GDMonoAssembly *load_from(const String &p_name, const String &p_path, bool p_refonly); -	GDMonoAssembly(const String &p_name, MonoImage *p_image, MonoAssembly *p_assembly); +	GDMonoAssembly(const String &p_name, MonoImage *p_image, MonoAssembly *p_assembly) : +			name(p_name), +			image(p_image), +			assembly(p_assembly) { +	}  	~GDMonoAssembly();  }; diff --git a/modules/mono/mono_gd/gd_mono_method_thunk.h b/modules/mono/mono_gd/gd_mono_method_thunk.h index 0e05e974e9..82c6f32c81 100644 --- a/modules/mono/mono_gd/gd_mono_method_thunk.h +++ b/modules/mono/mono_gd/gd_mono_method_thunk.h @@ -50,7 +50,7 @@ struct GDMonoMethodThunk {  	typedef void(GD_MONO_STDCALL *M)(ParamTypes... p_args, MonoException **); -	M mono_method_thunk; +	M mono_method_thunk = nullptr;  public:  	_FORCE_INLINE_ void invoke(ParamTypes... p_args, MonoException **r_exc) { @@ -81,9 +81,7 @@ public:  		mono_method_thunk = (M)mono_method_get_unmanaged_thunk(p_mono_method->get_mono_ptr());  	} -	GDMonoMethodThunk() : -			mono_method_thunk(nullptr) { -	} +	GDMonoMethodThunk() {}  	explicit GDMonoMethodThunk(GDMonoMethod *p_mono_method) {  		set_from_method(p_mono_method); @@ -95,7 +93,7 @@ struct GDMonoMethodThunkR {  	typedef R(GD_MONO_STDCALL *M)(ParamTypes... p_args, MonoException **); -	M mono_method_thunk; +	M mono_method_thunk = nullptr;  public:  	_FORCE_INLINE_ R invoke(ParamTypes... p_args, MonoException **r_exc) { @@ -127,9 +125,7 @@ public:  		mono_method_thunk = (M)mono_method_get_unmanaged_thunk(p_mono_method->get_mono_ptr());  	} -	GDMonoMethodThunkR() : -			mono_method_thunk(nullptr) { -	} +	GDMonoMethodThunkR() {}  	explicit GDMonoMethodThunkR(GDMonoMethod *p_mono_method) {  #ifdef DEBUG_ENABLED @@ -248,7 +244,7 @@ struct VariadicInvokeMonoMethodR<1, R, P1> {  template <class... ParamTypes>  struct GDMonoMethodThunk { -	GDMonoMethod *mono_method; +	GDMonoMethod *mono_method = nullptr;  public:  	_FORCE_INLINE_ void invoke(ParamTypes... p_args, MonoException **r_exc) { @@ -277,9 +273,7 @@ public:  		mono_method = p_mono_method;  	} -	GDMonoMethodThunk() : -			mono_method(nullptr) { -	} +	GDMonoMethodThunk() {}  	explicit GDMonoMethodThunk(GDMonoMethod *p_mono_method) {  		set_from_method(p_mono_method); @@ -289,7 +283,7 @@ public:  template <class R, class... ParamTypes>  struct GDMonoMethodThunkR { -	GDMonoMethod *mono_method; +	GDMonoMethod *mono_method = nullptr;  public:  	_FORCE_INLINE_ R invoke(ParamTypes... p_args, MonoException **r_exc) { @@ -318,9 +312,7 @@ public:  		mono_method = p_mono_method;  	} -	GDMonoMethodThunkR() : -			mono_method(nullptr) { -	} +	GDMonoMethodThunkR() {}  	explicit GDMonoMethodThunkR(GDMonoMethod *p_mono_method) {  		set_from_method(p_mono_method); diff --git a/modules/mono/mono_gd/gd_mono_utils.cpp b/modules/mono/mono_gd/gd_mono_utils.cpp index c0fea6ede9..a2ae42ae9f 100644 --- a/modules/mono/mono_gd/gd_mono_utils.cpp +++ b/modules/mono/mono_gd/gd_mono_utils.cpp @@ -664,8 +664,7 @@ GDMonoClass *make_generic_dictionary_type(MonoReflectionType *p_key_reftype, Mon  } // namespace Marshal -ScopeThreadAttach::ScopeThreadAttach() : -		mono_thread(nullptr) { +ScopeThreadAttach::ScopeThreadAttach() {  	if (likely(GDMono::get_singleton()->is_runtime_initialized()) && unlikely(!mono_domain_get())) {  		mono_thread = GDMonoUtils::attach_current_thread();  	} diff --git a/modules/mono/mono_gd/gd_mono_utils.h b/modules/mono/mono_gd/gd_mono_utils.h index e3011ade5d..caf0c792b7 100644 --- a/modules/mono/mono_gd/gd_mono_utils.h +++ b/modules/mono/mono_gd/gd_mono_utils.h @@ -155,7 +155,7 @@ struct ScopeThreadAttach {  	~ScopeThreadAttach();  private: -	MonoThread *mono_thread; +	MonoThread *mono_thread = nullptr;  };  StringName get_native_godot_class_name(GDMonoClass *p_class); diff --git a/modules/mono/mono_gd/managed_type.h b/modules/mono/mono_gd/managed_type.h index 84d1837853..491a2f3d20 100644 --- a/modules/mono/mono_gd/managed_type.h +++ b/modules/mono/mono_gd/managed_type.h @@ -36,18 +36,15 @@  #include "gd_mono_header.h"  struct ManagedType { -	int type_encoding; -	GDMonoClass *type_class; +	int type_encoding = 0; +	GDMonoClass *type_class = nullptr;  	static ManagedType from_class(GDMonoClass *p_class);  	static ManagedType from_class(MonoClass *p_mono_class);  	static ManagedType from_type(MonoType *p_mono_type);  	static ManagedType from_reftype(MonoReflectionType *p_mono_reftype); -	ManagedType() : -			type_encoding(0), -			type_class(nullptr) { -	} +	ManagedType() {}  	ManagedType(int p_type_encoding, GDMonoClass *p_type_class) :  			type_encoding(p_type_encoding), diff --git a/modules/webm/video_stream_webm.cpp b/modules/webm/video_stream_webm.cpp index a2d0f78f5f..faf1f32124 100644 --- a/modules/webm/video_stream_webm.cpp +++ b/modules/webm/video_stream_webm.cpp @@ -95,26 +95,8 @@ private:  /**/  VideoStreamPlaybackWebm::VideoStreamPlaybackWebm() : -		audio_track(0), -		webm(nullptr), -		video(nullptr), -		audio(nullptr), -		video_frames(nullptr), -		audio_frame(nullptr), -		video_frames_pos(0), -		video_frames_capacity(0), -		num_decoded_samples(0), -		samples_offset(-1), -		mix_callback(nullptr), -		mix_udata(nullptr), -		playing(false), -		paused(false), -		delay_compensation(0.0), -		time(0.0), -		video_frame_delay(0.0), -		video_pos(0.0), -		texture(memnew(ImageTexture)), -		pcm(nullptr) {} + +		texture(memnew(ImageTexture)) {}  VideoStreamPlaybackWebm::~VideoStreamPlaybackWebm() {  	delete_pointers(); @@ -438,8 +420,7 @@ void VideoStreamPlaybackWebm::delete_pointers() {  /**/ -VideoStreamWebm::VideoStreamWebm() : -		audio_track(0) {} +VideoStreamWebm::VideoStreamWebm() {}  Ref<VideoStreamPlayback> VideoStreamWebm::instance_playback() { diff --git a/modules/webm/video_stream_webm.h b/modules/webm/video_stream_webm.h index 6677fb85aa..0a32dfc671 100644 --- a/modules/webm/video_stream_webm.h +++ b/modules/webm/video_stream_webm.h @@ -44,27 +44,27 @@ class VideoStreamPlaybackWebm : public VideoStreamPlayback {  	GDCLASS(VideoStreamPlaybackWebm, VideoStreamPlayback);  	String file_name; -	int audio_track; +	int audio_track = 0; -	WebMDemuxer *webm; -	VPXDecoder *video; -	OpusVorbisDecoder *audio; +	WebMDemuxer *webm = nullptr; +	VPXDecoder *video = nullptr; +	OpusVorbisDecoder *audio = nullptr; -	WebMFrame **video_frames, *audio_frame; -	int video_frames_pos, video_frames_capacity; +	WebMFrame **video_frames = nullptr, *audio_frame = nullptr; +	int video_frames_pos = 0, video_frames_capacity = 0; -	int num_decoded_samples, samples_offset; -	AudioMixCallback mix_callback; -	void *mix_udata; +	int num_decoded_samples = 0, samples_offset = -1; +	AudioMixCallback mix_callback = nullptr; +	void *mix_udata = nullptr; -	bool playing, paused; -	double delay_compensation; -	double time, video_frame_delay, video_pos; +	bool playing = false, paused = false; +	double delay_compensation = 0.0; +	double time = 0.0, video_frame_delay = 0.0, video_pos = 0.0;  	Vector<uint8_t> frame_data;  	Ref<ImageTexture> texture; -	float *pcm; +	float *pcm = nullptr;  public:  	VideoStreamPlaybackWebm(); @@ -111,7 +111,7 @@ class VideoStreamWebm : public VideoStream {  	GDCLASS(VideoStreamWebm, VideoStream);  	String file; -	int audio_track; +	int audio_track = 0;  protected:  	static void _bind_methods(); diff --git a/platform/android/net_socket_android.cpp b/platform/android/net_socket_android.cpp index 320bdd3817..dc0154ea01 100644 --- a/platform/android/net_socket_android.cpp +++ b/platform/android/net_socket_android.cpp @@ -72,11 +72,6 @@ void NetSocketAndroid::make_default() {  	_create = _create_func;  } -NetSocketAndroid::NetSocketAndroid() : -		wants_broadcast(false), -		multicast_groups(0) { -} -  NetSocketAndroid::~NetSocketAndroid() {  	close();  } diff --git a/platform/android/net_socket_android.h b/platform/android/net_socket_android.h index 4fc80d2de1..7d6267e8b3 100644 --- a/platform/android/net_socket_android.h +++ b/platform/android/net_socket_android.h @@ -52,8 +52,8 @@ private:  	static jmethodID _multicast_lock_acquire;  	static jmethodID _multicast_lock_release; -	bool wants_broadcast; -	int multicast_groups; +	bool wants_broadcast = false; +	int multicast_groups = 0;  	static void multicast_lock_acquire();  	static void multicast_lock_release(); @@ -71,7 +71,7 @@ public:  	virtual Error join_multicast_group(const IP_Address &p_multi_address, String p_if_name);  	virtual Error leave_multicast_group(const IP_Address &p_multi_address, String p_if_name); -	NetSocketAndroid(); +	NetSocketAndroid() {}  	~NetSocketAndroid();  }; diff --git a/platform/haiku/key_mapping_haiku.h b/platform/haiku/key_mapping_haiku.h index a0e85e3390..e735108e44 100644 --- a/platform/haiku/key_mapping_haiku.h +++ b/platform/haiku/key_mapping_haiku.h @@ -32,7 +32,7 @@  #define KEY_MAPPING_HAIKU_H  class KeyMappingHaiku { -	KeyMappingHaiku(){}; +	KeyMappingHaiku() {}  public:  	static unsigned int get_keysym(int32 raw_char, int32 key); diff --git a/platform/iphone/export/export.cpp b/platform/iphone/export/export.cpp index 2222a7f552..3904fd6cf9 100644 --- a/platform/iphone/export/export.cpp +++ b/platform/iphone/export/export.cpp @@ -29,6 +29,7 @@  /*************************************************************************/  #include "export.h" +  #include "core/io/image_loader.h"  #include "core/io/marshalls.h"  #include "core/io/resource_saver.h" @@ -74,12 +75,9 @@ class EditorExportPlatformIOS : public EditorExportPlatform {  	struct ExportArchitecture {  		String name; -		bool is_default; +		bool is_default = false; -		ExportArchitecture() : -				name(""), -				is_default(false) { -		} +		ExportArchitecture() {}  		ExportArchitecture(String p_name, bool p_is_default) {  			name = p_name; diff --git a/platform/iphone/game_center.mm b/platform/iphone/game_center.mm index 99d539d4ff..52f025f333 100644 --- a/platform/iphone/game_center.mm +++ b/platform/iphone/game_center.mm @@ -395,6 +395,6 @@ GameCenter::GameCenter() {  	authenticated = false;  }; -GameCenter::~GameCenter(){}; +GameCenter::~GameCenter() {}  #endif diff --git a/platform/iphone/icloud.mm b/platform/iphone/icloud.mm index 251f78f2da..1b9b354727 100644 --- a/platform/iphone/icloud.mm +++ b/platform/iphone/icloud.mm @@ -354,6 +354,6 @@ ICloud::ICloud() {  					}];  } -ICloud::~ICloud(){}; +ICloud::~ICloud() {}  #endif diff --git a/platform/iphone/in_app_store.mm b/platform/iphone/in_app_store.mm index a8a887824f..c5a8ed2b2b 100644 --- a/platform/iphone/in_app_store.mm +++ b/platform/iphone/in_app_store.mm @@ -334,6 +334,6 @@ void InAppStore::set_auto_finish_transaction(bool b) {  	auto_finish_transactions = b;  } -InAppStore::~InAppStore(){}; +InAppStore::~InAppStore() {}  #endif diff --git a/platform/iphone/ios.mm b/platform/iphone/ios.mm index 2656f125b9..697c9b8a3d 100644 --- a/platform/iphone/ios.mm +++ b/platform/iphone/ios.mm @@ -81,4 +81,4 @@ String iOS::get_rate_url(int p_app_id) const {  	return ret;  }; -iOS::iOS(){}; +iOS::iOS() {} diff --git a/platform/iphone/os_iphone.cpp b/platform/iphone/os_iphone.cpp index 3ef521a61a..9254e660d8 100644 --- a/platform/iphone/os_iphone.cpp +++ b/platform/iphone/os_iphone.cpp @@ -372,8 +372,8 @@ void OSIPhone::finalize() {  	event_count = 0;  }; -void OSIPhone::set_mouse_show(bool p_show){}; -void OSIPhone::set_mouse_grab(bool p_grab){}; +void OSIPhone::set_mouse_show(bool p_show) {} +void OSIPhone::set_mouse_grab(bool p_grab) {}  bool OSIPhone::is_mouse_grab_enabled() const { @@ -390,7 +390,7 @@ int OSIPhone::get_mouse_button_state() const {  	return 0;  }; -void OSIPhone::set_window_title(const String &p_title){}; +void OSIPhone::set_window_title(const String &p_title) {}  void OSIPhone::alert(const String &p_alert, const String &p_title) { diff --git a/platform/javascript/http_client.h.inc b/platform/javascript/http_client.h.inc index ac275aadbc..4d5ff88bdd 100644 --- a/platform/javascript/http_client.h.inc +++ b/platform/javascript/http_client.h.inc @@ -33,21 +33,21 @@  Error prepare_request(Method p_method, const String &p_url, const Vector<String> &p_headers);  int xhr_id; -int read_limit; -int response_read_offset; -Status status; +int read_limit = 4096; +int response_read_offset = 0; +Status status = STATUS_DISCONNECTED;  String host; -int port; -bool use_tls; +int port = -1; +bool use_tls = false;  String username;  String password; -int polled_response_code; +int polled_response_code = 0;  String polled_response_header;  PackedByteArray polled_response;  #ifdef DEBUG_ENABLED -bool has_polled; -uint64_t last_polling_frame; +bool has_polled = false; +uint64_t last_polling_frame = 0;  #endif diff --git a/platform/javascript/http_client_javascript.cpp b/platform/javascript/http_client_javascript.cpp index 863c207896..19ce7ef219 100644 --- a/platform/javascript/http_client_javascript.cpp +++ b/platform/javascript/http_client_javascript.cpp @@ -29,6 +29,7 @@  /*************************************************************************/  #include "core/io/http_client.h" +  #include "http_request.h"  Error HTTPClient::connect_to_host(const String &p_host, int p_port, bool p_ssl, bool p_verify_host) { @@ -281,15 +282,6 @@ Error HTTPClient::poll() {  HTTPClient::HTTPClient() {  	xhr_id = godot_xhr_new(); -	read_limit = 4096; -	status = STATUS_DISCONNECTED; -	port = -1; -	use_tls = false; -	polled_response_code = 0; -#ifdef DEBUG_ENABLED -	has_polled = false; -	last_polling_frame = 0; -#endif  }  HTTPClient::~HTTPClient() { diff --git a/platform/linuxbsd/key_mapping_x11.h b/platform/linuxbsd/key_mapping_x11.h index 10db43bcc4..8f5e01a3c2 100644 --- a/platform/linuxbsd/key_mapping_x11.h +++ b/platform/linuxbsd/key_mapping_x11.h @@ -41,7 +41,7 @@  #include "core/os/keyboard.h"  class KeyMappingX11 { -	KeyMappingX11(){}; +	KeyMappingX11() {}  public:  	static unsigned int get_keycode(KeySym p_keysym); diff --git a/platform/uwp/app.cpp b/platform/uwp/app.cpp index d3870b0b6c..988f958739 100644 --- a/platform/uwp/app.cpp +++ b/platform/uwp/app.cpp @@ -78,16 +78,6 @@ public:  	return 0;  } -App::App() : -		mWindowClosed(false), -		mWindowVisible(true), -		mWindowWidth(0), -		mWindowHeight(0), -		mEglDisplay(EGL_NO_DISPLAY), -		mEglContext(EGL_NO_CONTEXT), -		mEglSurface(EGL_NO_SURFACE) { -} -  // The first method called when the IFrameworkView is being created.  void App::Initialize(CoreApplicationView ^ applicationView) {  	// Register event handlers for app lifecycle. This example includes Activated, so that we diff --git a/platform/uwp/app.h b/platform/uwp/app.h index b7265ad086..5cffe378b1 100644 --- a/platform/uwp/app.h +++ b/platform/uwp/app.h @@ -45,7 +45,7 @@ namespace GodotUWP  	ref class App sealed : public Windows::ApplicationModel::Core::IFrameworkView  	{  	public: -		App(); +		App() {}  		// IFrameworkView Methods.  		virtual void Initialize(Windows::ApplicationModel::Core::CoreApplicationView^ applicationView); @@ -92,14 +92,14 @@ namespace GodotUWP  		char** get_command_line(unsigned int* out_argc); -		bool mWindowClosed; -		bool mWindowVisible; -		GLsizei mWindowWidth; -		GLsizei mWindowHeight; +		bool mWindowClosed = false; +		bool mWindowVisible = true; +		GLsizei mWindowWidth = 0; +		GLsizei mWindowHeight = 0; -		EGLDisplay mEglDisplay; -		EGLContext mEglContext; -		EGLSurface mEglSurface; +		EGLDisplay mEglDisplay = EGL_NO_DISPLAY; +		EGLContext mEglContext = EGL_NO_CONTEXT; +		EGLSurface mEglSurface = EGL_NO_SURFACE;  		CoreWindow^ window;  		OS_UWP* os; diff --git a/platform/uwp/export/export.cpp b/platform/uwp/export/export.cpp index bee1ddfc99..50136ccb66 100644 --- a/platform/uwp/export/export.cpp +++ b/platform/uwp/export/export.cpp @@ -115,21 +115,15 @@ class AppxPackager {  	struct FileMeta {  		String name; -		int lfh_size; -		bool compressed; -		size_t compressed_size; -		size_t uncompressed_size; +		int lfh_size = 0; +		bool compressed = false; +		size_t compressed_size = 0; +		size_t uncompressed_size = 0;  		Vector<BlockHash> hashes; -		uLong file_crc32; -		ZPOS64_T zip_offset; - -		FileMeta() : -				lfh_size(0), -				compressed(false), -				compressed_size(0), -				uncompressed_size(0), -				file_crc32(0), -				zip_offset(0) {} +		uLong file_crc32 = 0; +		ZPOS64_T zip_offset = 0; + +		FileMeta() {}  	};  	String progress_task; diff --git a/platform/windows/key_mapping_windows.h b/platform/windows/key_mapping_windows.h index 3361ad397f..028ca9fd5d 100644 --- a/platform/windows/key_mapping_windows.h +++ b/platform/windows/key_mapping_windows.h @@ -39,7 +39,7 @@  class KeyMappingWindows { -	KeyMappingWindows(){}; +	KeyMappingWindows() {}  public:  	static unsigned int get_keysym(unsigned int p_code); diff --git a/scene/2d/navigation_agent_2d.cpp b/scene/2d/navigation_agent_2d.cpp index df23a40721..dfeb5eea45 100644 --- a/scene/2d/navigation_agent_2d.cpp +++ b/scene/2d/navigation_agent_2d.cpp @@ -133,15 +133,7 @@ void NavigationAgent2D::_notification(int p_what) {  	}  } -NavigationAgent2D::NavigationAgent2D() : -		agent_parent(nullptr), -		navigation(nullptr), -		agent(RID()), -		target_desired_distance(1.0), -		path_max_distance(3.0), -		velocity_submitted(false), -		target_reached(false), -		navigation_finished(true) { +NavigationAgent2D::NavigationAgent2D() {  	agent = NavigationServer2D::get_singleton()->agent_create();  	set_neighbor_dist(500.0);  	set_max_neighbors(10); diff --git a/scene/2d/navigation_agent_2d.h b/scene/2d/navigation_agent_2d.h index 26eccfc949..796a85f3f2 100644 --- a/scene/2d/navigation_agent_2d.h +++ b/scene/2d/navigation_agent_2d.h @@ -40,29 +40,29 @@ class Navigation2D;  class NavigationAgent2D : public Node {  	GDCLASS(NavigationAgent2D, Node); -	Node2D *agent_parent; -	Navigation2D *navigation; +	Node2D *agent_parent = nullptr; +	Navigation2D *navigation = nullptr;  	RID agent; -	real_t target_desired_distance; +	real_t target_desired_distance = 1.0;  	real_t radius;  	real_t neighbor_dist;  	int max_neighbors;  	real_t time_horizon;  	real_t max_speed; -	real_t path_max_distance; +	real_t path_max_distance = 3.0;  	Vector2 target_location;  	Vector<Vector2> navigation_path;  	int nav_path_index; -	bool velocity_submitted; +	bool velocity_submitted = false;  	Vector2 prev_safe_velocity;  	/// The submitted target velocity  	Vector2 target_velocity; -	bool target_reached; -	bool navigation_finished; +	bool target_reached = false; +	bool navigation_finished = true;  	// No initialized on purpose  	uint32_t update_frame_id; diff --git a/scene/2d/navigation_obstacle_2d.cpp b/scene/2d/navigation_obstacle_2d.cpp index 50d02ca507..3eb3ef332f 100644 --- a/scene/2d/navigation_obstacle_2d.cpp +++ b/scene/2d/navigation_obstacle_2d.cpp @@ -78,9 +78,7 @@ void NavigationObstacle2D::_notification(int p_what) {  	}  } -NavigationObstacle2D::NavigationObstacle2D() : -		navigation(nullptr), -		agent(RID()) { +NavigationObstacle2D::NavigationObstacle2D() {  	agent = NavigationServer2D::get_singleton()->agent_create();  } diff --git a/scene/2d/navigation_obstacle_2d.h b/scene/2d/navigation_obstacle_2d.h index 3935fe1bc5..bdef6f2843 100644 --- a/scene/2d/navigation_obstacle_2d.h +++ b/scene/2d/navigation_obstacle_2d.h @@ -38,7 +38,7 @@ class Navigation2D;  class NavigationObstacle2D : public Node {  	GDCLASS(NavigationObstacle2D, Node); -	Navigation2D *navigation; +	Navigation2D *navigation = nullptr;  	RID agent; diff --git a/scene/2d/navigation_region_2d.cpp b/scene/2d/navigation_region_2d.cpp index abbfbf83b7..f3f335e66a 100644 --- a/scene/2d/navigation_region_2d.cpp +++ b/scene/2d/navigation_region_2d.cpp @@ -367,13 +367,6 @@ void NavigationPolygon::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "outlines", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "_set_outlines", "_get_outlines");  } -NavigationPolygon::NavigationPolygon() : -		rect_cache_dirty(true) { -} - -NavigationPolygon::~NavigationPolygon() { -} -  void NavigationRegion2D::set_enabled(bool p_enabled) {  	if (enabled == p_enabled) @@ -569,12 +562,8 @@ void NavigationRegion2D::_bind_methods() {  }  NavigationRegion2D::NavigationRegion2D() { - -	enabled = true;  	set_notify_transform(true);  	region = NavigationServer2D::get_singleton()->region_create(); - -	navigation = nullptr;  }  NavigationRegion2D::~NavigationRegion2D() { diff --git a/scene/2d/navigation_region_2d.h b/scene/2d/navigation_region_2d.h index e730df6373..54d2ac11f8 100644 --- a/scene/2d/navigation_region_2d.h +++ b/scene/2d/navigation_region_2d.h @@ -46,7 +46,7 @@ class NavigationPolygon : public Resource {  	Vector<Vector<Vector2>> outlines;  	mutable Rect2 item_rect; -	mutable bool rect_cache_dirty; +	mutable bool rect_cache_dirty = true;  	Mutex navmesh_generation;  	// Navigation mesh @@ -88,8 +88,8 @@ public:  	Ref<NavigationMesh> get_mesh(); -	NavigationPolygon(); -	~NavigationPolygon(); +	NavigationPolygon() {} +	~NavigationPolygon() {}  };  class Navigation2D; @@ -98,9 +98,9 @@ class NavigationRegion2D : public Node2D {  	GDCLASS(NavigationRegion2D, Node2D); -	bool enabled; +	bool enabled = true;  	RID region; -	Navigation2D *navigation; +	Navigation2D *navigation = nullptr;  	Ref<NavigationPolygon> navpoly;  	void _navpoly_changed(); diff --git a/scene/3d/navigation_agent_3d.cpp b/scene/3d/navigation_agent_3d.cpp index e672ed9a54..020d598f00 100644 --- a/scene/3d/navigation_agent_3d.cpp +++ b/scene/3d/navigation_agent_3d.cpp @@ -141,16 +141,7 @@ void NavigationAgent3D::_notification(int p_what) {  	}  } -NavigationAgent3D::NavigationAgent3D() : -		agent_parent(nullptr), -		navigation(nullptr), -		agent(RID()), -		target_desired_distance(1.0), -		navigation_height_offset(0.0), -		path_max_distance(3.0), -		velocity_submitted(false), -		target_reached(false), -		navigation_finished(true) { +NavigationAgent3D::NavigationAgent3D() {  	agent = NavigationServer3D::get_singleton()->agent_create();  	set_neighbor_dist(50.0);  	set_max_neighbors(10); diff --git a/scene/3d/navigation_agent_3d.h b/scene/3d/navigation_agent_3d.h index 3558b4e51b..6dc375ef24 100644 --- a/scene/3d/navigation_agent_3d.h +++ b/scene/3d/navigation_agent_3d.h @@ -40,31 +40,31 @@ class Navigation3D;  class NavigationAgent3D : public Node {  	GDCLASS(NavigationAgent3D, Node); -	Node3D *agent_parent; -	Navigation3D *navigation; +	Node3D *agent_parent = nullptr; +	Navigation3D *navigation = nullptr;  	RID agent; -	real_t target_desired_distance; +	real_t target_desired_distance = 1.0;  	real_t radius; -	real_t navigation_height_offset; +	real_t navigation_height_offset = 0.0;  	bool ignore_y;  	real_t neighbor_dist;  	int max_neighbors;  	real_t time_horizon;  	real_t max_speed; -	real_t path_max_distance; +	real_t path_max_distance = 3.0;  	Vector3 target_location;  	Vector<Vector3> navigation_path;  	int nav_path_index; -	bool velocity_submitted; +	bool velocity_submitted = false;  	Vector3 prev_safe_velocity;  	/// The submitted target velocity  	Vector3 target_velocity; -	bool target_reached; -	bool navigation_finished; +	bool target_reached = false; +	bool navigation_finished = true;  	// No initialized on purpose  	uint32_t update_frame_id; diff --git a/scene/3d/navigation_obstacle_3d.cpp b/scene/3d/navigation_obstacle_3d.cpp index 2ee2008799..2f99a5f99e 100644 --- a/scene/3d/navigation_obstacle_3d.cpp +++ b/scene/3d/navigation_obstacle_3d.cpp @@ -86,9 +86,7 @@ void NavigationObstacle3D::_notification(int p_what) {  	}  } -NavigationObstacle3D::NavigationObstacle3D() : -		navigation(nullptr), -		agent(RID()) { +NavigationObstacle3D::NavigationObstacle3D() {  	agent = NavigationServer3D::get_singleton()->agent_create();  } diff --git a/scene/3d/navigation_obstacle_3d.h b/scene/3d/navigation_obstacle_3d.h index b58d7c4991..c7d2b556af 100644 --- a/scene/3d/navigation_obstacle_3d.h +++ b/scene/3d/navigation_obstacle_3d.h @@ -38,7 +38,7 @@ class Navigation3D;  class NavigationObstacle3D : public Node {  	GDCLASS(NavigationObstacle3D, Node); -	Navigation3D *navigation; +	Navigation3D *navigation = nullptr;  	RID agent; diff --git a/scene/3d/navigation_region_3d.cpp b/scene/3d/navigation_region_3d.cpp index 043b816033..b15fa6166f 100644 --- a/scene/3d/navigation_region_3d.cpp +++ b/scene/3d/navigation_region_3d.cpp @@ -242,14 +242,8 @@ void NavigationRegion3D::_changed_callback(Object *p_changed, const char *p_prop  }  NavigationRegion3D::NavigationRegion3D() { - -	enabled = true;  	set_notify_transform(true);  	region = NavigationServer3D::get_singleton()->region_create(); - -	navigation = nullptr; -	debug_view = nullptr; -	bake_thread = nullptr;  }  NavigationRegion3D::~NavigationRegion3D() { diff --git a/scene/3d/navigation_region_3d.h b/scene/3d/navigation_region_3d.h index ae071e6b7a..a7b5077f53 100644 --- a/scene/3d/navigation_region_3d.h +++ b/scene/3d/navigation_region_3d.h @@ -41,13 +41,13 @@ class NavigationRegion3D : public Node3D {  	GDCLASS(NavigationRegion3D, Node3D); -	bool enabled; +	bool enabled = true;  	RID region;  	Ref<NavigationMesh> navmesh; -	Navigation3D *navigation; -	Node *debug_view; -	Thread *bake_thread; +	Navigation3D *navigation = nullptr; +	Node *debug_view = nullptr; +	Thread *bake_thread = nullptr;  protected:  	void _notification(int p_what); diff --git a/scene/3d/physics_body_3d.cpp b/scene/3d/physics_body_3d.cpp index 280bab5d45..d672c6f6b5 100644 --- a/scene/3d/physics_body_3d.cpp +++ b/scene/3d/physics_body_3d.cpp @@ -2579,24 +2579,7 @@ bool PhysicalBone3D::get_axis_lock(PhysicsServer3D::BodyAxis p_axis) const {  }  PhysicalBone3D::PhysicalBone3D() : -		PhysicsBody3D(PhysicsServer3D::BODY_MODE_STATIC), -#ifdef TOOLS_ENABLED -		gizmo_move_joint(false), -#endif -		joint_data(nullptr), -		parent_skeleton(nullptr), -		simulate_physics(false), -		_internal_simulate_physics(false), -		bone_id(-1), -		bone_name(""), -		bounce(0), -		mass(1), -		friction(1), -		gravity_scale(1), -		linear_damp(-1), -		angular_damp(-1), -		can_sleep(true) { - +		PhysicsBody3D(PhysicsServer3D::BODY_MODE_STATIC) {  	reset_physics_simulation_state();  } diff --git a/scene/3d/physics_body_3d.h b/scene/3d/physics_body_3d.h index 0e719f5108..205052f798 100644 --- a/scene/3d/physics_body_3d.h +++ b/scene/3d/physics_body_3d.h @@ -396,14 +396,11 @@ public:  		virtual bool _get(const StringName &p_name, Variant &r_ret) const;  		virtual void _get_property_list(List<PropertyInfo> *p_list) const; -		real_t bias; -		real_t damping; -		real_t impulse_clamp; - -		PinJointData() : -				bias(0.3), -				damping(1.), -				impulse_clamp(0) {} +		real_t bias = 0.3; +		real_t damping = 1.; +		real_t impulse_clamp = 0; + +		PinJointData() {}  	};  	struct ConeJointData : public JointData { @@ -414,17 +411,13 @@ public:  		virtual void _get_property_list(List<PropertyInfo> *p_list) const;  		real_t swing_span; -		real_t twist_span; -		real_t bias; -		real_t softness; -		real_t relaxation; +		real_t twist_span = Math_PI; +		real_t bias = 0.3; +		real_t softness = 0.8; +		real_t relaxation = 1.;  		ConeJointData() : -				swing_span(Math_PI * 0.25), -				twist_span(Math_PI), -				bias(0.3), -				softness(0.8), -				relaxation(1.) {} +				swing_span(Math_PI * 0.25) {}  	};  	struct HingeJointData : public JointData { @@ -434,20 +427,17 @@ public:  		virtual bool _get(const StringName &p_name, Variant &r_ret) const;  		virtual void _get_property_list(List<PropertyInfo> *p_list) const; -		bool angular_limit_enabled; +		bool angular_limit_enabled = false;  		real_t angular_limit_upper;  		real_t angular_limit_lower; -		real_t angular_limit_bias; -		real_t angular_limit_softness; -		real_t angular_limit_relaxation; +		real_t angular_limit_bias = 0.3; +		real_t angular_limit_softness = 0.9; +		real_t angular_limit_relaxation = 1.;  		HingeJointData() : -				angular_limit_enabled(false), +  				angular_limit_upper(Math_PI * 0.5), -				angular_limit_lower(-Math_PI * 0.5), -				angular_limit_bias(0.3), -				angular_limit_softness(0.9), -				angular_limit_relaxation(1.) {} +				angular_limit_lower(-Math_PI * 0.5) {}  	};  	struct SliderJointData : public JointData { @@ -457,76 +447,45 @@ public:  		virtual bool _get(const StringName &p_name, Variant &r_ret) const;  		virtual void _get_property_list(List<PropertyInfo> *p_list) const; -		real_t linear_limit_upper; -		real_t linear_limit_lower; -		real_t linear_limit_softness; -		real_t linear_limit_restitution; -		real_t linear_limit_damping; -		real_t angular_limit_upper; -		real_t angular_limit_lower; -		real_t angular_limit_softness; -		real_t angular_limit_restitution; -		real_t angular_limit_damping; - -		SliderJointData() : -				linear_limit_upper(1.), -				linear_limit_lower(-1.), -				linear_limit_softness(1.), -				linear_limit_restitution(0.7), -				linear_limit_damping(1.), -				angular_limit_upper(0), -				angular_limit_lower(0), -				angular_limit_softness(1.), -				angular_limit_restitution(0.7), -				angular_limit_damping(1.) {} +		real_t linear_limit_upper = 1.; +		real_t linear_limit_lower = -1.; +		real_t linear_limit_softness = 1.; +		real_t linear_limit_restitution = 0.7; +		real_t linear_limit_damping = 1.; +		real_t angular_limit_upper = 0; +		real_t angular_limit_lower = 0; +		real_t angular_limit_softness = 1.; +		real_t angular_limit_restitution = 0.7; +		real_t angular_limit_damping = 1.; + +		SliderJointData() {}  	};  	struct SixDOFJointData : public JointData {  		struct SixDOFAxisData { -			bool linear_limit_enabled; -			real_t linear_limit_upper; -			real_t linear_limit_lower; -			real_t linear_limit_softness; -			real_t linear_restitution; -			real_t linear_damping; -			bool linear_spring_enabled; -			real_t linear_spring_stiffness; -			real_t linear_spring_damping; -			real_t linear_equilibrium_point; -			bool angular_limit_enabled; -			real_t angular_limit_upper; -			real_t angular_limit_lower; -			real_t angular_limit_softness; -			real_t angular_restitution; -			real_t angular_damping; -			real_t erp; -			bool angular_spring_enabled; -			real_t angular_spring_stiffness; -			real_t angular_spring_damping; -			real_t angular_equilibrium_point; - -			SixDOFAxisData() : -					linear_limit_enabled(true), -					linear_limit_upper(0), -					linear_limit_lower(0), -					linear_limit_softness(0.7), -					linear_restitution(0.5), -					linear_damping(1.), -					linear_spring_enabled(false), -					linear_spring_stiffness(0), -					linear_spring_damping(0), -					linear_equilibrium_point(0), -					angular_limit_enabled(true), -					angular_limit_upper(0), -					angular_limit_lower(0), -					angular_limit_softness(0.5), -					angular_restitution(0), -					angular_damping(1.), -					erp(0.5), -					angular_spring_enabled(false), -					angular_spring_stiffness(0), -					angular_spring_damping(0.), -					angular_equilibrium_point(0) {} +			bool linear_limit_enabled = true; +			real_t linear_limit_upper = 0; +			real_t linear_limit_lower = 0; +			real_t linear_limit_softness = 0.7; +			real_t linear_restitution = 0.5; +			real_t linear_damping = 1.; +			bool linear_spring_enabled = false; +			real_t linear_spring_stiffness = 0; +			real_t linear_spring_damping = 0; +			real_t linear_equilibrium_point = 0; +			bool angular_limit_enabled = true; +			real_t angular_limit_upper = 0; +			real_t angular_limit_lower = 0; +			real_t angular_limit_softness = 0.5; +			real_t angular_restitution = 0; +			real_t angular_damping = 1.; +			real_t erp = 0.5; +			bool angular_spring_enabled = false; +			real_t angular_spring_stiffness = 0; +			real_t angular_spring_damping = 0.; +			real_t angular_equilibrium_point = 0; + +			SixDOFAxisData() {}  		};  		virtual JointType get_joint_type() { return JOINT_TYPE_6DOF; } @@ -543,28 +502,28 @@ public:  private:  #ifdef TOOLS_ENABLED  	// if false gizmo move body -	bool gizmo_move_joint; +	bool gizmo_move_joint = false;  #endif -	JointData *joint_data; +	JointData *joint_data = nullptr;  	Transform joint_offset;  	RID joint; -	Skeleton3D *parent_skeleton; +	Skeleton3D *parent_skeleton = nullptr;  	Transform body_offset;  	Transform body_offset_inverse; -	bool simulate_physics; -	bool _internal_simulate_physics; -	int bone_id; +	bool simulate_physics = false; +	bool _internal_simulate_physics = false; +	int bone_id = -1;  	String bone_name; -	real_t bounce; -	real_t mass; -	real_t friction; -	real_t gravity_scale; -	real_t linear_damp; -	real_t angular_damp; -	bool can_sleep; +	real_t bounce = 0; +	real_t mass = 1; +	real_t friction = 1; +	real_t gravity_scale = 1; +	real_t linear_damp = -1; +	real_t angular_damp = -1; +	bool can_sleep = true;  protected:  	bool _set(const StringName &p_name, const Variant &p_value); diff --git a/scene/3d/physics_joint_3d.cpp b/scene/3d/physics_joint_3d.cpp index 140d887d9a..b6953fafac 100644 --- a/scene/3d/physics_joint_3d.cpp +++ b/scene/3d/physics_joint_3d.cpp @@ -960,8 +960,7 @@ RID Generic6DOFJoint3D::_configure_joint(PhysicsBody3D *body_a, PhysicsBody3D *b  	return j;  } -Generic6DOFJoint3D::Generic6DOFJoint3D() : -		precision(1) { +Generic6DOFJoint3D::Generic6DOFJoint3D() {  	set_param_x(PARAM_LINEAR_LOWER_LIMIT, 0);  	set_param_x(PARAM_LINEAR_UPPER_LIMIT, 0); diff --git a/scene/3d/physics_joint_3d.h b/scene/3d/physics_joint_3d.h index ce0c7af5d1..38a3f314ba 100644 --- a/scene/3d/physics_joint_3d.h +++ b/scene/3d/physics_joint_3d.h @@ -305,7 +305,7 @@ protected:  	float params_z[PARAM_MAX];  	bool flags_z[FLAG_MAX]; -	int precision; +	int precision = 1;  	virtual RID _configure_joint(PhysicsBody3D *body_a, PhysicsBody3D *body_b);  	static void _bind_methods(); diff --git a/scene/3d/skeleton_ik_3d.cpp b/scene/3d/skeleton_ik_3d.cpp index 10bdd71d73..5c0e48a5df 100644 --- a/scene/3d/skeleton_ik_3d.cpp +++ b/scene/3d/skeleton_ik_3d.cpp @@ -434,15 +434,7 @@ void SkeletonIK3D::_notification(int p_what) {  	}  } -SkeletonIK3D::SkeletonIK3D() : -		interpolation(1), -		override_tip_basis(true), -		use_magnet(false), -		min_distance(0.01), -		max_iterations(10), -		skeleton(nullptr), -		target_node_override(nullptr), -		task(nullptr) { +SkeletonIK3D::SkeletonIK3D() {  }  SkeletonIK3D::~SkeletonIK3D() { diff --git a/scene/3d/skeleton_ik_3d.h b/scene/3d/skeleton_ik_3d.h index 5fbbe6e9e7..ad2623193b 100644 --- a/scene/3d/skeleton_ik_3d.h +++ b/scene/3d/skeleton_ik_3d.h @@ -50,36 +50,30 @@ class FabrikInverseKinematic {  	struct ChainItem {  		Vector<ChainItem> children; -		ChainItem *parent_item; +		ChainItem *parent_item = nullptr;  		// Bone info -		BoneId bone; -		PhysicalBone3D *pb; +		BoneId bone = -1; +		PhysicalBone3D *pb = nullptr; -		real_t length; +		real_t length = 0;  		/// Positions relative to root bone  		Transform initial_transform;  		Vector3 current_pos;  		// Direction from this bone to child  		Vector3 current_ori; -		ChainItem() : -				parent_item(nullptr), -				bone(-1), -				pb(nullptr), -				length(0) {} +		ChainItem() {}  		ChainItem *find_child(const BoneId p_bone_id);  		ChainItem *add_child(const BoneId p_bone_id);  	};  	struct ChainTip { -		ChainItem *chain_item; -		const EndEffector *end_effector; +		ChainItem *chain_item = nullptr; +		const EndEffector *end_effector = nullptr; -		ChainTip() : -				chain_item(nullptr), -				end_effector(nullptr) {} +		ChainTip() {}  		ChainTip(ChainItem *p_chain_item, const EndEffector *p_end_effector) :  				chain_item(p_chain_item), @@ -100,25 +94,21 @@ class FabrikInverseKinematic {  public:  	struct Task {  		RID self; -		Skeleton3D *skeleton; +		Skeleton3D *skeleton = nullptr;  		Chain chain;  		// Settings -		real_t min_distance; -		int max_iterations; +		real_t min_distance = 0.01; +		int max_iterations = 10;  		// Bone data -		BoneId root_bone; +		BoneId root_bone = -1;  		Vector<EndEffector> end_effectors;  		Transform goal_global_transform; -		Task() : -				skeleton(nullptr), -				min_distance(0.01), -				max_iterations(10), -				root_bone(-1) {} +		Task() {}  	};  private: @@ -146,19 +136,19 @@ class SkeletonIK3D : public Node {  	StringName root_bone;  	StringName tip_bone; -	real_t interpolation; +	real_t interpolation = 1;  	Transform target;  	NodePath target_node_path_override; -	bool override_tip_basis; -	bool use_magnet; +	bool override_tip_basis = true; +	bool use_magnet = false;  	Vector3 magnet_position; -	real_t min_distance; -	int max_iterations; +	real_t min_distance = 0.01; +	int max_iterations = 10; -	Skeleton3D *skeleton; -	Node3D *target_node_override; -	FabrikInverseKinematic::Task *task; +	Skeleton3D *skeleton = nullptr; +	Node3D *target_node_override = nullptr; +	FabrikInverseKinematic::Task *task = nullptr;  protected:  	virtual void diff --git a/scene/3d/soft_body_3d.cpp b/scene/3d/soft_body_3d.cpp index 850ffab292..91b8b5c859 100644 --- a/scene/3d/soft_body_3d.cpp +++ b/scene/3d/soft_body_3d.cpp @@ -97,9 +97,7 @@ void SoftBodyRenderingServerHandler::set_aabb(const AABB &p_aabb) {  	RS::get_singleton()->mesh_set_custom_aabb(mesh, p_aabb);  } -SoftBody3D::PinnedPoint::PinnedPoint() : -		point_index(-1), -		spatial_attachment(nullptr) { +SoftBody3D::PinnedPoint::PinnedPoint() {  }  SoftBody3D::PinnedPoint::PinnedPoint(const PinnedPoint &obj_tocopy) { @@ -702,13 +700,7 @@ bool SoftBody3D::is_ray_pickable() const {  }  SoftBody3D::SoftBody3D() : -		physics_rid(PhysicsServer3D::get_singleton()->soft_body_create()), -		mesh_owner(false), -		collision_mask(1), -		collision_layer(1), -		simulation_started(false), -		pinned_points_cache_dirty(true), -		ray_pickable(true) { +		physics_rid(PhysicsServer3D::get_singleton()->soft_body_create()) {  	PhysicsServer3D::get_singleton()->body_attach_object_instance_id(physics_rid, get_instance_id());  } diff --git a/scene/3d/soft_body_3d.h b/scene/3d/soft_body_3d.h index 7dd5880985..485f7427f8 100644 --- a/scene/3d/soft_body_3d.h +++ b/scene/3d/soft_body_3d.h @@ -68,9 +68,9 @@ class SoftBody3D : public MeshInstance3D {  public:  	struct PinnedPoint { -		int point_index; +		int point_index = -1;  		NodePath spatial_attachment_path; -		Node3D *spatial_attachment; // Cache +		Node3D *spatial_attachment = nullptr; // Cache  		Vector3 offset;  		PinnedPoint(); @@ -83,19 +83,19 @@ private:  	RID physics_rid; -	bool mesh_owner; -	uint32_t collision_mask; -	uint32_t collision_layer; +	bool mesh_owner = false; +	uint32_t collision_mask = 1; +	uint32_t collision_layer = 1;  	NodePath parent_collision_ignore;  	Vector<PinnedPoint> pinned_points; -	bool simulation_started; -	bool pinned_points_cache_dirty; +	bool simulation_started = false; +	bool pinned_points_cache_dirty = true;  	Ref<ArrayMesh> debug_mesh_cache;  	class MeshInstance3D *debug_mesh;  	bool capture_input_on_drag; -	bool ray_pickable; +	bool ray_pickable = true;  	void _update_pickable(); diff --git a/scene/3d/spring_arm_3d.cpp b/scene/3d/spring_arm_3d.cpp index 1410b730fd..f61e6eb2a7 100644 --- a/scene/3d/spring_arm_3d.cpp +++ b/scene/3d/spring_arm_3d.cpp @@ -29,18 +29,12 @@  /*************************************************************************/  #include "spring_arm_3d.h" +  #include "core/engine.h"  #include "scene/3d/collision_object_3d.h"  #include "scene/resources/sphere_shape_3d.h"  #include "servers/physics_server_3d.h" -SpringArm3D::SpringArm3D() : -		spring_length(1), -		current_spring_length(0), -		keep_child_basis(false), -		mask(1), -		margin(0.01) {} -  void SpringArm3D::_notification(int p_what) {  	switch (p_what) {  		case NOTIFICATION_ENTER_TREE: diff --git a/scene/3d/spring_arm_3d.h b/scene/3d/spring_arm_3d.h index cb8a00ecf9..7f6fe2f1a2 100644 --- a/scene/3d/spring_arm_3d.h +++ b/scene/3d/spring_arm_3d.h @@ -38,11 +38,11 @@ class SpringArm3D : public Node3D {  	Ref<Shape3D> shape;  	Set<RID> excluded_objects; -	float spring_length; -	float current_spring_length; -	bool keep_child_basis; -	uint32_t mask; -	float margin; +	float spring_length = 1; +	float current_spring_length = 0; +	bool keep_child_basis = false; +	uint32_t mask = 1; +	float margin = 0.01;  protected:  	void _notification(int p_what); @@ -62,7 +62,7 @@ public:  	void set_margin(float p_margin);  	float get_margin(); -	SpringArm3D(); +	SpringArm3D() {}  private:  	void process_spring(); diff --git a/scene/3d/vehicle_body_3d.cpp b/scene/3d/vehicle_body_3d.cpp index 5c2fa59a21..66fcf0e40b 100644 --- a/scene/3d/vehicle_body_3d.cpp +++ b/scene/3d/vehicle_body_3d.cpp @@ -44,7 +44,7 @@ public:  	real_t getDiagonal() const { return m_Adiag; } -	btVehicleJacobianEntry(){}; +	btVehicleJacobianEntry() {}  	//constraint between two different rigidbodies  	btVehicleJacobianEntry(  			const Basis &world2A, diff --git a/scene/animation/animation_player.h b/scene/animation/animation_player.h index c134aff707..d709082f62 100644 --- a/scene/animation/animation_player.h +++ b/scene/animation/animation_player.h @@ -87,41 +87,37 @@ private:  	struct TrackNodeCache {  		NodePath path; -		uint32_t id; +		uint32_t id = 0;  		RES resource; -		Node *node; -		Node3D *spatial; -		Node2D *node_2d; -		Skeleton3D *skeleton; -		int bone_idx; +		Node *node = nullptr; +		Node3D *spatial = nullptr; +		Node2D *node_2d = nullptr; +		Skeleton3D *skeleton = nullptr; +		int bone_idx = -1;  		// accumulated transforms  		Vector3 loc_accum;  		Quat rot_accum;  		Vector3 scale_accum; -		uint64_t accum_pass; +		uint64_t accum_pass = 0; -		bool audio_playing; -		float audio_start; -		float audio_len; +		bool audio_playing = false; +		float audio_start = 0.0; +		float audio_len = 0.0; -		bool animation_playing; +		bool animation_playing = false;  		struct PropertyAnim { -			TrackNodeCache *owner; -			SpecialProperty special; //small optimization +			TrackNodeCache *owner = nullptr; +			SpecialProperty special = SP_NONE; //small optimization  			Vector<StringName> subpath; -			Object *object; +			Object *object = nullptr;  			Variant value_accum; -			uint64_t accum_pass; +			uint64_t accum_pass = 0;  			Variant capture; -			PropertyAnim() : -					owner(nullptr), -					special(SP_NONE), -					object(nullptr), -					accum_pass(0) {} +			PropertyAnim() {}  		};  		Map<StringName, PropertyAnim> property_anim; @@ -129,32 +125,17 @@ private:  		struct BezierAnim {  			Vector<StringName> bezier_property; -			TrackNodeCache *owner; -			float bezier_accum; -			Object *object; -			uint64_t accum_pass; - -			BezierAnim() : -					owner(nullptr), -					bezier_accum(0.0), -					object(nullptr), -					accum_pass(0) {} +			TrackNodeCache *owner = nullptr; +			float bezier_accum = 0.0; +			Object *object = nullptr; +			uint64_t accum_pass = 0; + +			BezierAnim() {}  		};  		Map<StringName, BezierAnim> bezier_anim; -		TrackNodeCache() : -				id(0), -				node(nullptr), -				spatial(nullptr), -				node_2d(nullptr), -				skeleton(nullptr), -				bone_idx(-1), -				accum_pass(0), -				audio_playing(false), -				audio_start(0.0), -				audio_len(0.0), -				animation_playing(false) {} +		TrackNodeCache() {}  	};  	struct TrackNodeCacheKey { diff --git a/scene/debugger/scene_debugger.h b/scene/debugger/scene_debugger.h index e295510960..e8521d6a20 100644 --- a/scene/debugger/scene_debugger.h +++ b/scene/debugger/scene_debugger.h @@ -100,7 +100,7 @@ public:  	void serialize(Array &r_arr);  	void deserialize(const Array &p_arr);  	SceneDebuggerTree(Node *p_root); -	SceneDebuggerTree(){}; +	SceneDebuggerTree() {}  };  class LiveEditor { diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp index bedcef2df2..7490101ee3 100644 --- a/scene/gui/label.cpp +++ b/scene/gui/label.cpp @@ -29,6 +29,7 @@  /*************************************************************************/  #include "label.h" +  #include "core/print_string.h"  #include "core/project_settings.h"  #include "core/translation.h" @@ -693,24 +694,8 @@ void Label::_bind_methods() {  }  Label::Label(const String &p_text) { - -	align = ALIGN_LEFT; -	valign = VALIGN_TOP; -	xl_text = ""; -	word_cache = nullptr; -	word_cache_dirty = true; -	autowrap = false; -	line_count = 0; -	set_v_size_flags(0); -	clip = false;  	set_mouse_filter(MOUSE_FILTER_IGNORE); -	total_char_cache = 0; -	visible_chars = -1; -	percent_visible = 1; -	lines_skipped = 0; -	max_lines_visible = -1;  	set_text(p_text); -	uppercase = false;  	set_v_size_flags(SIZE_SHRINK_CENTER);  } diff --git a/scene/gui/label.h b/scene/gui/label.h index ba6e627c58..0f84b01604 100644 --- a/scene/gui/label.h +++ b/scene/gui/label.h @@ -55,15 +55,15 @@ public:  	};  private: -	Align align; -	VAlign valign; +	Align align = ALIGN_LEFT; +	VAlign valign = VALIGN_TOP;  	String text;  	String xl_text; -	bool autowrap; -	bool clip; +	bool autowrap = false; +	bool clip = false;  	Size2 minsize; -	int line_count; -	bool uppercase; +	int line_count = 0; +	bool uppercase = false;  	int get_longest_line_width() const; @@ -73,30 +73,23 @@ private:  			CHAR_NEWLINE = -1,  			CHAR_WRAPLINE = -2  		}; -		int char_pos; // if -1, then newline -		int word_len; -		int pixel_width; -		int space_count; -		WordCache *next; -		WordCache() { -			char_pos = 0; -			word_len = 0; -			pixel_width = 0; -			next = 0; -			space_count = 0; -		} +		int char_pos = 0; // if -1, then newline +		int word_len = 0; +		int pixel_width = 0; +		int space_count = 0; +		WordCache *next = nullptr;  	}; -	bool word_cache_dirty; +	bool word_cache_dirty = true;  	void regenerate_word_cache(); -	float percent_visible; +	float percent_visible = 1; -	WordCache *word_cache; -	int total_char_cache; -	int visible_chars; -	int lines_skipped; -	int max_lines_visible; +	WordCache *word_cache = nullptr; +	int total_char_cache = 0; +	int visible_chars = -1; +	int lines_skipped = 0; +	int max_lines_visible = -1;  protected:  	void _notification(int p_what); diff --git a/scene/main/canvas_item.h b/scene/main/canvas_item.h index 5f1798cc2a..805659376a 100644 --- a/scene/main/canvas_item.h +++ b/scene/main/canvas_item.h @@ -277,7 +277,7 @@ public:  	virtual bool _edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const;  	// Save and restore a CanvasItem state -	virtual void _edit_set_state(const Dictionary &p_state){}; +	virtual void _edit_set_state(const Dictionary &p_state) {}  	virtual Dictionary _edit_get_state() const { return Dictionary(); };  	// Used to move the node @@ -290,18 +290,18 @@ public:  	// Used to rotate the node  	virtual bool _edit_use_rotation() const { return false; }; -	virtual void _edit_set_rotation(float p_rotation){}; +	virtual void _edit_set_rotation(float p_rotation) {}  	virtual float _edit_get_rotation() const { return 0.0; };  	// Used to resize/move the node  	virtual bool _edit_use_rect() const { return false; }; // MAYBE REPLACE BY A _edit_get_editmode() -	virtual void _edit_set_rect(const Rect2 &p_rect){}; +	virtual void _edit_set_rect(const Rect2 &p_rect) {}  	virtual Rect2 _edit_get_rect() const { return Rect2(0, 0, 0, 0); };  	virtual Size2 _edit_get_minimum_size() const { return Size2(-1, -1); }; // LOOKS WEIRD  	// Used to set a pivot  	virtual bool _edit_use_pivot() const { return false; }; -	virtual void _edit_set_pivot(const Point2 &p_pivot){}; +	virtual void _edit_set_pivot(const Point2 &p_pivot) {}  	virtual Point2 _edit_get_pivot() const { return Point2(); };  	virtual Transform2D _edit_get_transform() const; diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index e9827d521b..58024dab38 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -173,7 +173,7 @@ class TooltipPanel : public PopupPanel {  	GDCLASS(TooltipPanel, PopupPanel);  public: -	TooltipPanel(){}; +	TooltipPanel() {}  };  class TooltipLabel : public Label { @@ -181,7 +181,7 @@ class TooltipLabel : public Label {  	GDCLASS(TooltipLabel, Label);  public: -	TooltipLabel(){}; +	TooltipLabel() {}  };  Viewport::GUI::GUI() { diff --git a/scene/resources/environment.cpp b/scene/resources/environment.cpp index 02ea5b24b8..4647c38e04 100644 --- a/scene/resources/environment.cpp +++ b/scene/resources/environment.cpp @@ -1117,11 +1117,7 @@ void Environment::_bind_methods() {  	BIND_ENUM_CONSTANT(SSAO_BLUR_3x3);  } -Environment::Environment() : -		bg_mode(BG_CLEAR_COLOR), -		tone_mapper(TONE_MAPPER_LINEAR), -		ssao_blur(SSAO_BLUR_3x3), -		glow_blend_mode(GLOW_BLEND_MODE_ADDITIVE) { +Environment::Environment() {  	environment = RS::get_singleton()->environment_create(); diff --git a/scene/resources/environment.h b/scene/resources/environment.h index 02434bc592..6d00560634 100644 --- a/scene/resources/environment.h +++ b/scene/resources/environment.h @@ -90,7 +90,7 @@ public:  private:  	RID environment; -	BGMode bg_mode; +	BGMode bg_mode = BG_CLEAR_COLOR;  	Ref<Sky> bg_sky;  	float bg_sky_custom_fov;  	Vector3 sky_rotation; @@ -105,7 +105,7 @@ private:  	AmbientSource ambient_source;  	ReflectionSource reflection_source; -	ToneMapper tone_mapper; +	ToneMapper tone_mapper = TONE_MAPPER_LINEAR;  	float tonemap_exposure;  	float tonemap_white;  	bool tonemap_auto_exposure; @@ -132,7 +132,7 @@ private:  	float ssao_bias;  	float ssao_direct_light_affect;  	float ssao_ao_channel_affect; -	SSAOBlur ssao_blur; +	SSAOBlur ssao_blur = SSAO_BLUR_3x3;  	float ssao_edge_sharpness;  	bool glow_enabled; @@ -141,7 +141,7 @@ private:  	float glow_strength;  	float glow_mix;  	float glow_bloom; -	GlowBlendMode glow_blend_mode; +	GlowBlendMode glow_blend_mode = GLOW_BLEND_MODE_ADDITIVE;  	float glow_hdr_bleed_threshold;  	float glow_hdr_bleed_scale;  	float glow_hdr_luminance_cap; diff --git a/scene/resources/physics_material.cpp b/scene/resources/physics_material.cpp index 8ac0191452..89fbf7a248 100644 --- a/scene/resources/physics_material.cpp +++ b/scene/resources/physics_material.cpp @@ -69,9 +69,3 @@ void PhysicsMaterial::set_absorbent(bool p_val) {  	absorbent = p_val;  	emit_changed();  } - -PhysicsMaterial::PhysicsMaterial() : -		friction(1), -		rough(false), -		bounce(0), -		absorbent(false) {} diff --git a/scene/resources/physics_material.h b/scene/resources/physics_material.h index f4a77d9854..1fac3fa6ef 100644 --- a/scene/resources/physics_material.h +++ b/scene/resources/physics_material.h @@ -28,8 +28,8 @@  /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */  /*************************************************************************/ -#ifndef physics_material_override_H -#define physics_material_override_H +#ifndef PHYSICS_MATERIAL_H +#define PHYSICS_MATERIAL_H  #include "core/resource.h"  #include "servers/physics_server_3d.h" @@ -40,10 +40,10 @@ class PhysicsMaterial : public Resource {  	OBJ_SAVE_TYPE(PhysicsMaterial);  	RES_BASE_EXTENSION("phymat"); -	real_t friction; -	bool rough; -	real_t bounce; -	bool absorbent; +	real_t friction = 1; +	bool rough = false; +	real_t bounce = 0; +	bool absorbent = false;  protected:  	static void _bind_methods(); @@ -69,7 +69,7 @@ public:  		return absorbent ? -bounce : bounce;  	} -	PhysicsMaterial(); +	PhysicsMaterial() {}  }; -#endif // physics_material_override_H +#endif // PHYSICS_MATERIAL_H diff --git a/scene/resources/shape_3d.cpp b/scene/resources/shape_3d.cpp index f4a5d91e52..97d03b3cfc 100644 --- a/scene/resources/shape_3d.cpp +++ b/scene/resources/shape_3d.cpp @@ -109,19 +109,13 @@ void Shape3D::_bind_methods() {  	ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "margin", PROPERTY_HINT_RANGE, "0.001,10,0.001"), "set_margin", "get_margin");  } -Shape3D::Shape3D() : -		margin(0.04) { - -	ERR_PRINT("Constructor must not be called!"); +Shape3D::Shape3D() { +	ERR_PRINT("Default constructor must not be called!");  }  Shape3D::Shape3D(RID p_shape) : -		margin(0.04) { - -	shape = p_shape; -} +		shape(p_shape) {}  Shape3D::~Shape3D() { -  	PhysicsServer3D::get_singleton()->free(shape);  } diff --git a/scene/resources/shape_3d.h b/scene/resources/shape_3d.h index e7a516412d..6516868fd5 100644 --- a/scene/resources/shape_3d.h +++ b/scene/resources/shape_3d.h @@ -41,7 +41,7 @@ class Shape3D : public Resource {  	OBJ_SAVE_TYPE(Shape3D);  	RES_BASE_EXTENSION("shape");  	RID shape; -	real_t margin; +	real_t margin = 0.04;  	Ref<ArrayMesh> debug_mesh_cache; diff --git a/scene/resources/tile_set.h b/scene/resources/tile_set.h index 05b43dfb89..5f01959253 100644 --- a/scene/resources/tile_set.h +++ b/scene/resources/tile_set.h @@ -48,13 +48,10 @@ public:  		Ref<Shape2D> shape;  		Transform2D shape_transform;  		Vector2 autotile_coord; -		bool one_way_collision; -		float one_way_collision_margin; +		bool one_way_collision = false; +		float one_way_collision_margin = 1.0; -		ShapeData() { -			one_way_collision = false; -			one_way_collision_margin = 1.0; -		} +		ShapeData() {}  	};  	enum BitmaskMode { @@ -92,22 +89,18 @@ public:  	};  	struct AutotileData { -		BitmaskMode bitmask_mode; -		Size2 size; -		int spacing; -		Vector2 icon_coord; +		BitmaskMode bitmask_mode = BITMASK_2X2; +		// Default size to prevent invalid value +		Size2 size = Size2(64, 64); +		Vector2 icon_coord = Vector2(0, 0); +		int spacing = 0;  		Map<Vector2, uint32_t> flags;  		Map<Vector2, Ref<OccluderPolygon2D>> occluder_map;  		Map<Vector2, Ref<NavigationPolygon>> navpoly_map;  		Map<Vector2, int> priority_map;  		Map<Vector2, int> z_index_map; -		// Default size to prevent invalid value -		explicit AutotileData() : -				bitmask_mode(BITMASK_2X2), -				size(64, 64), -				spacing(0), -				icon_coord(0, 0) {} +		explicit AutotileData() {}  	};  private: @@ -124,16 +117,13 @@ private:  		Vector2 navigation_polygon_offset;  		Ref<NavigationPolygon> navigation_polygon;  		Ref<ShaderMaterial> material; -		TileMode tile_mode; -		Color modulate; +		TileMode tile_mode = SINGLE_TILE; +		// Default modulate for back-compat +		Color modulate = Color(1, 1, 1);  		AutotileData autotile_data; -		int z_index; +		int z_index = 0; -		// Default modulate for back-compat -		explicit TileData() : -				tile_mode(SINGLE_TILE), -				modulate(1, 1, 1), -				z_index(0) {} +		explicit TileData() {}  	};  	Map<int, TileData> tile_map; diff --git a/servers/audio/effects/audio_effect_record.h b/servers/audio/effects/audio_effect_record.h index 09101033be..68d968c04b 100644 --- a/servers/audio/effects/audio_effect_record.h +++ b/servers/audio/effects/audio_effect_record.h @@ -49,7 +49,7 @@ class AudioEffectRecordInstance : public AudioEffectInstance {  	bool is_recording;  	Thread *io_thread; -	bool thread_active; +	bool thread_active = false;  	Vector<AudioFrame> ring_buffer;  	Vector<float> recording_data; @@ -71,8 +71,7 @@ public:  	virtual void process(const AudioFrame *p_src_frames, AudioFrame *p_dst_frames, int p_frame_count);  	virtual bool process_silence() const; -	AudioEffectRecordInstance() : -			thread_active(false) {} +	AudioEffectRecordInstance() {}  	~AudioEffectRecordInstance();  }; diff --git a/servers/audio/effects/reverb.cpp b/servers/audio/effects/reverb.cpp index ea2174f1d4..02565f4516 100644 --- a/servers/audio/effects/reverb.cpp +++ b/servers/audio/effects/reverb.cpp @@ -31,7 +31,9 @@  // Author: Juan Linietsky <reduzio@gmail.com>, (C) 2006  #include "reverb.h" +  #include "core/math/math_funcs.h" +  #include <math.h>  const float Reverb::comb_tunings[MAX_COMBS] = { @@ -338,11 +340,8 @@ Reverb::Reverb() {  	params.predelay = 150;  	params.predelay_fb = 0.4;  	params.hpf = 0; -	hpf_h1 = 0; -	hpf_h2 = 0;  	input_buffer = memnew_arr(float, INPUT_BUFFER_MAX_SIZE); -	echo_buffer = nullptr;  	configure_buffers();  	update_parameters(); diff --git a/servers/audio/effects/reverb.h b/servers/audio/effects/reverb.h index 92e4aed435..ed8c824148 100644 --- a/servers/audio/effects/reverb.h +++ b/servers/audio/effects/reverb.h @@ -58,44 +58,34 @@ private:  	struct Comb { -		int size; -		float *buffer; -		float feedback; -		float damp; //lowpass -		float damp_h; //history -		int pos; -		int extra_spread_frames; - -		Comb() { -			size = 0; -			buffer = 0; -			feedback = 0; -			damp_h = 0; -			pos = 0; -		} +		int size = 0; +		float *buffer = nullptr; +		float feedback = 0; +		float damp = 0; //lowpass +		float damp_h = 0; //history +		int pos = 0; +		int extra_spread_frames = 0; + +		Comb() {}  	};  	struct AllPass { -		int size; -		float *buffer; -		int pos; -		int extra_spread_frames; -		AllPass() { -			size = 0; -			buffer = 0; -			pos = 0; -		} +		int size = 0; +		float *buffer = nullptr; +		int pos = 0; +		int extra_spread_frames = 0; +		AllPass() {}  	};  	Comb comb[MAX_COMBS];  	AllPass allpass[MAX_ALLPASS];  	float *input_buffer; -	float *echo_buffer; +	float *echo_buffer = nullptr;  	int echo_buffer_size;  	int echo_buffer_pos; -	float hpf_h1, hpf_h2; +	float hpf_h1, hpf_h2 = 0;  	struct Parameters { diff --git a/servers/physics_3d/body_3d_sw.cpp b/servers/physics_3d/body_3d_sw.cpp index fea5aed6ad..2f2525bb75 100644 --- a/servers/physics_3d/body_3d_sw.cpp +++ b/servers/physics_3d/body_3d_sw.cpp @@ -764,7 +764,7 @@ void Body3DSW::set_kinematic_margin(real_t p_margin) {  Body3DSW::Body3DSW() :  		CollisionObject3DSW(TYPE_BODY), -		locked_axis(0), +  		active_list(this),  		inertia_update_list(this),  		direct_state_query_list(this) { diff --git a/servers/physics_3d/body_3d_sw.h b/servers/physics_3d/body_3d_sw.h index a67894b64b..0308d8689e 100644 --- a/servers/physics_3d/body_3d_sw.h +++ b/servers/physics_3d/body_3d_sw.h @@ -54,7 +54,7 @@ class Body3DSW : public CollisionObject3DSW {  	real_t angular_damp;  	real_t gravity_scale; -	uint16_t locked_axis; +	uint16_t locked_axis = 0;  	real_t kinematic_safe_margin;  	real_t _inv_mass; diff --git a/servers/physics_3d/gjk_epa.cpp b/servers/physics_3d/gjk_epa.cpp index db37f261ce..aaa7de7531 100644 --- a/servers/physics_3d/gjk_epa.cpp +++ b/servers/physics_3d/gjk_epa.cpp @@ -513,16 +513,16 @@ struct	GJK  		};  		struct	sList  		{ -			sFace*		root; -			U			count; -			sList() : root(nullptr),count(0)	{} +			sFace*		root = nullptr; +			U			count = 0; +			sList() 	{}  		};  		struct	sHorizon  		{ -			sFace*		cf; -			sFace*		ff; -			U			nf; -			sHorizon() : cf(nullptr),ff(nullptr),nf(0)	{} +			sFace*		cf = nullptr; +			sFace*		ff = nullptr; +			U			nf = 0; +			sHorizon() 	{}  		};  		struct	eStatus { enum _ {  			Valid, diff --git a/servers/physics_3d/joints/jacobian_entry_3d_sw.h b/servers/physics_3d/joints/jacobian_entry_3d_sw.h index 7e605ab173..1737c21b3d 100644 --- a/servers/physics_3d/joints/jacobian_entry_3d_sw.h +++ b/servers/physics_3d/joints/jacobian_entry_3d_sw.h @@ -54,7 +54,7 @@ subject to the following restrictions:  class JacobianEntry3DSW {  public: -	JacobianEntry3DSW(){}; +	JacobianEntry3DSW() {}  	//constraint between two different rigidbodies  	JacobianEntry3DSW(  			const Basis &world2A, diff --git a/servers/physics_server_2d.h b/servers/physics_server_2d.h index 8c833b390f..7f73a50b34 100644 --- a/servers/physics_server_2d.h +++ b/servers/physics_server_2d.h @@ -640,11 +640,9 @@ typedef PhysicsServer2D *(*CreatePhysicsServer2DCallback)();  class PhysicsServer2DManager {  	struct ClassInfo {  		String name; -		CreatePhysicsServer2DCallback create_callback; +		CreatePhysicsServer2DCallback create_callback = nullptr; -		ClassInfo() : -				name(""), -				create_callback(nullptr) {} +		ClassInfo() {}  		ClassInfo(String p_name, CreatePhysicsServer2DCallback p_create_callback) :  				name(p_name), diff --git a/servers/physics_server_3d.h b/servers/physics_server_3d.h index 8ea8b22455..6900da1393 100644 --- a/servers/physics_server_3d.h +++ b/servers/physics_server_3d.h @@ -781,11 +781,9 @@ typedef PhysicsServer3D *(*CreatePhysicsServer3DCallback)();  class PhysicsServer3DManager {  	struct ClassInfo {  		String name; -		CreatePhysicsServer3DCallback create_callback; +		CreatePhysicsServer3DCallback create_callback = nullptr; -		ClassInfo() : -				name(""), -				create_callback(nullptr) {} +		ClassInfo() {}  		ClassInfo(String p_name, CreatePhysicsServer3DCallback p_create_callback) :  				name(p_name), diff --git a/servers/rendering/rasterizer_rd/rasterizer_canvas_rd.h b/servers/rendering/rasterizer_rd/rasterizer_canvas_rd.h index 4d47b3e13b..48467cbd8c 100644 --- a/servers/rendering/rasterizer_rd/rasterizer_canvas_rd.h +++ b/servers/rendering/rasterizer_rd/rasterizer_canvas_rd.h @@ -489,7 +489,7 @@ public:  	void canvas_render_items(RID p_to_render_target, Item *p_item_list, const Color &p_modulate, Light *p_light_list, const Transform2D &p_canvas_transform); -	void canvas_debug_viewport_shadows(Light *p_lights_with_shadow){}; +	void canvas_debug_viewport_shadows(Light *p_lights_with_shadow) {}  	void draw_window_margins(int *p_margins, RID *p_margin_textures) {} diff --git a/servers/rendering/shader_language.h b/servers/rendering/shader_language.h index 314e4a5fba..c78d850e21 100644 --- a/servers/rendering/shader_language.h +++ b/servers/rendering/shader_language.h @@ -328,7 +328,7 @@ public:  	};  	struct Node { -		Node *next; +		Node *next = nullptr;  		enum Type {  			TYPE_SHADER, @@ -352,7 +352,6 @@ public:  		virtual String get_datatype_name() const { return ""; }  		Node(Type t) : -				next(nullptr),  				type(t) {}  		virtual ~Node() {}  	}; @@ -368,41 +367,35 @@ public:  	Node *nodes;  	struct OperatorNode : public Node { -		DataType return_cache; -		DataPrecision return_precision_cache; -		Operator op; +		DataType return_cache = TYPE_VOID; +		DataPrecision return_precision_cache = PRECISION_DEFAULT; +		Operator op = OP_EQUAL;  		StringName struct_name;  		Vector<Node *> arguments;  		virtual DataType get_datatype() const { return return_cache; }  		virtual String get_datatype_name() const { return String(struct_name); }  		OperatorNode() : -				Node(TYPE_OPERATOR), -				return_cache(TYPE_VOID), -				return_precision_cache(PRECISION_DEFAULT), -				op(OP_EQUAL), -				struct_name("") {} +				Node(TYPE_OPERATOR) {}  	};  	struct VariableNode : public Node { -		DataType datatype_cache; +		DataType datatype_cache = TYPE_VOID;  		StringName name;  		StringName struct_name;  		virtual DataType get_datatype() const { return datatype_cache; }  		virtual String get_datatype_name() const { return String(struct_name); } -		bool is_const; +		bool is_const = false;  		VariableNode() : -				Node(TYPE_VARIABLE), -				datatype_cache(TYPE_VOID), -				is_const(false) {} +				Node(TYPE_VARIABLE) {}  	};  	struct VariableDeclarationNode : public Node { -		DataPrecision precision; -		DataType datatype; +		DataPrecision precision = PRECISION_DEFAULT; +		DataType datatype = TYPE_VOID;  		String struct_name; -		bool is_const; +		bool is_const = false;  		struct Declaration {  			StringName name; @@ -413,47 +406,38 @@ public:  		virtual DataType get_datatype() const { return datatype; }  		VariableDeclarationNode() : -				Node(TYPE_VARIABLE_DECLARATION), -				precision(PRECISION_DEFAULT), -				datatype(TYPE_VOID), -				is_const(false) {} +				Node(TYPE_VARIABLE_DECLARATION) {}  	};  	struct ArrayNode : public Node { -		DataType datatype_cache; +		DataType datatype_cache = TYPE_VOID;  		StringName struct_name;  		StringName name; -		Node *index_expression; -		Node *call_expression; -		bool is_const; +		Node *index_expression = nullptr; +		Node *call_expression = nullptr; +		bool is_const = false;  		virtual DataType get_datatype() const { return datatype_cache; }  		virtual String get_datatype_name() const { return String(struct_name); }  		ArrayNode() : -				Node(TYPE_ARRAY), -				datatype_cache(TYPE_VOID), -				index_expression(nullptr), -				call_expression(nullptr), -				is_const(false) {} +				Node(TYPE_ARRAY) {}  	};  	struct ArrayConstructNode : public Node { -		DataType datatype; +		DataType datatype = TYPE_VOID;  		String struct_name;  		Vector<Node *> initializer;  		ArrayConstructNode() : -				Node(TYPE_ARRAY_CONSTRUCT), -				datatype(TYPE_VOID) { -		} +				Node(TYPE_ARRAY_CONSTRUCT) {}  	};  	struct ArrayDeclarationNode : public Node { -		DataPrecision precision; -		DataType datatype; +		DataPrecision precision = PRECISION_DEFAULT; +		DataType datatype = TYPE_VOID;  		String struct_name; -		bool is_const; +		bool is_const = false;  		struct Declaration {  			StringName name; @@ -465,14 +449,11 @@ public:  		virtual DataType get_datatype() const { return datatype; }  		ArrayDeclarationNode() : -				Node(TYPE_ARRAY_DECLARATION), -				precision(PRECISION_DEFAULT), -				datatype(TYPE_VOID), -				is_const(false) {} +				Node(TYPE_ARRAY_DECLARATION) {}  	};  	struct ConstantNode : public Node { -		DataType datatype; +		DataType datatype = TYPE_VOID;  		union Value {  			bool boolean; @@ -485,15 +466,14 @@ public:  		virtual DataType get_datatype() const { return datatype; }  		ConstantNode() : -				Node(TYPE_CONSTANT), -				datatype(TYPE_VOID) {} +				Node(TYPE_CONSTANT) {}  	};  	struct FunctionNode;  	struct BlockNode : public Node { -		FunctionNode *parent_function; -		BlockNode *parent_block; +		FunctionNode *parent_function = nullptr; +		BlockNode *parent_block = nullptr;  		enum BlockType {  			BLOCK_TYPE_STANDART, @@ -503,8 +483,8 @@ public:  			BLOCK_TYPE_DEFAULT,  		}; -		int block_type; -		SubClassTag block_tag; +		int block_type = BLOCK_TYPE_STANDART; +		SubClassTag block_tag = SubClassTag::TAG_GLOBAL;  		struct Variable {  			DataType type; @@ -517,52 +497,39 @@ public:  		Map<StringName, Variable> variables;  		List<Node *> statements; -		bool single_statement; +		bool single_statement = false;  		BlockNode() : -				Node(TYPE_BLOCK), -				parent_function(nullptr), -				parent_block(nullptr), -				block_type(BLOCK_TYPE_STANDART), -				block_tag(SubClassTag::TAG_GLOBAL), -				single_statement(false) {} +				Node(TYPE_BLOCK) {}  	};  	struct ControlFlowNode : public Node { -		FlowOperation flow_op; +		FlowOperation flow_op = FLOW_OP_IF;  		Vector<Node *> expressions;  		Vector<BlockNode *> blocks;  		ControlFlowNode() : -				Node(TYPE_CONTROL_FLOW), -				flow_op(FLOW_OP_IF) {} +				Node(TYPE_CONTROL_FLOW) {}  	};  	struct MemberNode : public Node { -		DataType basetype; -		bool basetype_const; +		DataType basetype = TYPE_VOID; +		bool basetype_const = false;  		StringName base_struct_name;  		DataPrecision precision; -		DataType datatype; -		int array_size; +		DataType datatype = TYPE_VOID; +		int array_size = 0;  		StringName struct_name;  		StringName name; -		Node *owner; -		Node *index_expression; -		bool has_swizzling_duplicates; +		Node *owner = nullptr; +		Node *index_expression = nullptr; +		bool has_swizzling_duplicates = false;  		virtual DataType get_datatype() const { return datatype; }  		virtual String get_datatype_name() const { return String(struct_name); }  		MemberNode() : -				Node(TYPE_MEMBER), -				basetype(TYPE_VOID), -				basetype_const(false), -				datatype(TYPE_VOID), -				array_size(0), -				owner(nullptr), -				index_expression(nullptr), -				has_swizzling_duplicates(false) {} +				Node(TYPE_MEMBER) {}  	};  	struct StructNode : public Node { @@ -591,19 +558,15 @@ public:  		};  		StringName name; -		DataType return_type; +		DataType return_type = TYPE_VOID;  		StringName return_struct_name; -		DataPrecision return_precision; +		DataPrecision return_precision = PRECISION_DEFAULT;  		Vector<Argument> arguments; -		BlockNode *body; -		bool can_discard; +		BlockNode *body = nullptr; +		bool can_discard = false;  		FunctionNode() : -				Node(TYPE_FUNCTION), -				return_type(TYPE_VOID), -				return_precision(PRECISION_DEFAULT), -				body(nullptr), -				can_discard(false) {} +				Node(TYPE_FUNCTION) {}  	};  	struct ShaderNode : public Node { @@ -629,16 +592,12 @@ public:  		};  		struct Varying { -			DataType type; -			DataInterpolation interpolation; -			DataPrecision precision; -			int array_size; +			DataType type = TYPE_VOID; +			DataInterpolation interpolation = INTERPOLATION_FLAT; +			DataPrecision precision = PRECISION_DEFAULT; +			int array_size = 0; -			Varying() : -					type(TYPE_VOID), -					interpolation(INTERPOLATION_FLAT), -					precision(PRECISION_DEFAULT), -					array_size(0) {} +			Varying() {}  		};  		struct Uniform { @@ -667,28 +626,19 @@ public:  				SCOPE_GLOBAL,  			}; -			int order; -			int texture_order; -			DataType type; -			DataPrecision precision; +			int order = 0; +			int texture_order = 0; +			DataType type = TYPE_VOID; +			DataPrecision precision = PRECISION_DEFAULT;  			Vector<ConstantNode::Value> default_value; -			Scope scope; -			Hint hint; -			TextureFilter filter; -			TextureRepeat repeat; +			Scope scope = SCOPE_LOCAL; +			Hint hint = HINT_NONE; +			TextureFilter filter = FILTER_DEFAULT; +			TextureRepeat repeat = REPEAT_DEFAULT;  			float hint_range[3]; -			int instance_index; - -			Uniform() : -					order(0), -					texture_order(0), -					type(TYPE_VOID), -					precision(PRECISION_DEFAULT), -					scope(SCOPE_LOCAL), -					hint(HINT_NONE), -					filter(FILTER_DEFAULT), -					repeat(REPEAT_DEFAULT), -					instance_index(0) { +			int instance_index = 0; + +			Uniform() {  				hint_range[0] = 0.0f;  				hint_range[1] = 1.0f;  				hint_range[2] = 0.001f; @@ -768,12 +718,10 @@ public:  	static void get_builtin_funcs(List<String> *r_keywords);  	struct BuiltInInfo { -		DataType type; -		bool constant; +		DataType type = TYPE_VOID; +		bool constant = false; -		BuiltInInfo() : -				type(TYPE_VOID), -				constant(false) {} +		BuiltInInfo() {}  		BuiltInInfo(DataType p_type, bool p_constant = false) :  				type(p_type), diff --git a/servers/xr/xr_interface.cpp b/servers/xr/xr_interface.cpp index c1233ae810..5ffe50894a 100644 --- a/servers/xr/xr_interface.cpp +++ b/servers/xr/xr_interface.cpp @@ -122,7 +122,7 @@ XRInterface::XRInterface() {  	tracking_state = XR_UNKNOWN_TRACKING;  }; -XRInterface::~XRInterface(){}; +XRInterface::~XRInterface() {}  // optional render to external texture which enhances performance on those platforms that require us to submit our end result into special textures.  unsigned int XRInterface::get_external_texture_for_eye(XRInterface::Eyes p_eye) {  |