diff options
Diffstat (limited to 'core')
| -rw-r--r-- | core/core_bind.cpp | 9 | ||||
| -rw-r--r-- | core/core_bind.h | 1 | ||||
| -rw-r--r-- | core/input/input_map.cpp | 2 | ||||
| -rw-r--r-- | core/math/geometry_2d.cpp | 4 | ||||
| -rw-r--r-- | core/os/thread.cpp | 1 | ||||
| -rw-r--r-- | core/templates/cowdata.h | 2 |
6 files changed, 15 insertions, 4 deletions
diff --git a/core/core_bind.cpp b/core/core_bind.cpp index 0da6680a7b..4845f5f1ae 100644 --- a/core/core_bind.cpp +++ b/core/core_bind.cpp @@ -276,6 +276,10 @@ String _OS::get_environment(const String &p_var) const { return OS::get_singleton()->get_environment(p_var); } +bool _OS::set_environment(const String &p_var, const String &p_value) const { + return OS::get_singleton()->set_environment(p_var, p_value); +} + String _OS::get_name() const { return OS::get_singleton()->get_name(); } @@ -711,8 +715,9 @@ void _OS::_bind_methods() { ClassDB::bind_method(D_METHOD("shell_open", "uri"), &_OS::shell_open); ClassDB::bind_method(D_METHOD("get_process_id"), &_OS::get_process_id); - ClassDB::bind_method(D_METHOD("get_environment", "environment"), &_OS::get_environment); - ClassDB::bind_method(D_METHOD("has_environment", "environment"), &_OS::has_environment); + ClassDB::bind_method(D_METHOD("get_environment", "variable"), &_OS::get_environment); + ClassDB::bind_method(D_METHOD("set_environment", "variable", "value"), &_OS::set_environment); + ClassDB::bind_method(D_METHOD("has_environment", "variable"), &_OS::has_environment); ClassDB::bind_method(D_METHOD("get_name"), &_OS::get_name); ClassDB::bind_method(D_METHOD("get_cmdline_args"), &_OS::get_cmdline_args); diff --git a/core/core_bind.h b/core/core_bind.h index 8a4885b82b..0cfe9bdb8b 100644 --- a/core/core_bind.h +++ b/core/core_bind.h @@ -172,6 +172,7 @@ public: bool has_environment(const String &p_var) const; String get_environment(const String &p_var) const; + bool set_environment(const String &p_var, const String &p_value) const; String get_name() const; Vector<String> get_cmdline_args(); diff --git a/core/input/input_map.cpp b/core/input/input_map.cpp index 029808ebbe..e0b25fa092 100644 --- a/core/input/input_map.cpp +++ b/core/input/input_map.cpp @@ -694,7 +694,7 @@ void InputMap::load_default() { // For the editor, only add keyboard actions. if (iek.is_valid()) { - action_add_event(fullname, I->get()); + action_add_event(name, I->get()); } } } diff --git a/core/math/geometry_2d.cpp b/core/math/geometry_2d.cpp index 783750b9e6..d67be14d33 100644 --- a/core/math/geometry_2d.cpp +++ b/core/math/geometry_2d.cpp @@ -94,6 +94,10 @@ void Geometry2D::make_atlas(const Vector<Size2i> &p_rects, Vector<Point2i> &r_re // 256x8192 atlas (won't work anywhere). ERR_FAIL_COND(p_rects.size() == 0); + for (int i = 0; i < p_rects.size(); i++) { + ERR_FAIL_COND(p_rects[i].width <= 0); + ERR_FAIL_COND(p_rects[i].height <= 0); + } Vector<_AtlasWorkRect> wrects; wrects.resize(p_rects.size()); diff --git a/core/os/thread.cpp b/core/os/thread.cpp index 88744eed63..aea370787d 100644 --- a/core/os/thread.cpp +++ b/core/os/thread.cpp @@ -92,6 +92,7 @@ bool Thread::is_started() const { void Thread::wait_to_finish() { if (id != 0) { + ERR_FAIL_COND_MSG(id == get_caller_id(), "A Thread can't wait for itself to finish."); thread.join(); std::thread empty_thread; thread.swap(empty_thread); diff --git a/core/templates/cowdata.h b/core/templates/cowdata.h index 525d9e77cb..c985593473 100644 --- a/core/templates/cowdata.h +++ b/core/templates/cowdata.h @@ -142,7 +142,7 @@ public: _FORCE_INLINE_ bool is_empty() const { return _ptr == nullptr; } _FORCE_INLINE_ void set(int p_index, const T &p_elem) { - CRASH_BAD_INDEX(p_index, size()); + ERR_FAIL_INDEX(p_index, size()); _copy_on_write(); _get_data()[p_index] = p_elem; } |
