mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 07:53:26 +00:00
CI: Fix godot regression project test
Fix crash and memory leak in `SpringBoneSimulator3D` Fix crash in `GraphEdit`
This commit is contained in:
parent
6b5b84c0c5
commit
4b9650f54e
4 changed files with 27 additions and 4 deletions
4
.github/workflows/linux_builds.yml
vendored
4
.github/workflows/linux_builds.yml
vendored
|
@ -8,8 +8,8 @@ env:
|
|||
SCONSFLAGS: verbose=yes warnings=extra werror=yes module_text_server_fb_enabled=yes strict_checks=yes
|
||||
DOTNET_NOLOGO: true
|
||||
DOTNET_CLI_TELEMETRY_OPTOUT: true
|
||||
TSAN_OPTIONS: suppressions=misc/error_suppressions/tsan.txt
|
||||
UBSAN_OPTIONS: suppressions=misc/error_suppressions/ubsan.txt
|
||||
TSAN_OPTIONS: suppressions=${{ github.workspace }}/misc/error_suppressions/tsan.txt
|
||||
UBSAN_OPTIONS: suppressions=${{ github.workspace }}/misc/error_suppressions/ubsan.txt
|
||||
|
||||
jobs:
|
||||
build-linux:
|
||||
|
|
|
@ -607,6 +607,7 @@ void SpringBoneSimulator3D::set_radius(int p_index, float p_radius) {
|
|||
}
|
||||
|
||||
float SpringBoneSimulator3D::get_radius(int p_index) const {
|
||||
ERR_FAIL_INDEX_V(p_index, settings.size(), 0);
|
||||
return settings[p_index]->radius;
|
||||
}
|
||||
|
||||
|
@ -640,6 +641,7 @@ void SpringBoneSimulator3D::set_stiffness(int p_index, float p_stiffness) {
|
|||
}
|
||||
|
||||
float SpringBoneSimulator3D::get_stiffness(int p_index) const {
|
||||
ERR_FAIL_INDEX_V(p_index, settings.size(), 0);
|
||||
return settings[p_index]->stiffness;
|
||||
}
|
||||
|
||||
|
@ -762,8 +764,15 @@ SpringBoneSimulator3D::RotationAxis SpringBoneSimulator3D::get_rotation_axis(int
|
|||
|
||||
void SpringBoneSimulator3D::set_setting_count(int p_count) {
|
||||
ERR_FAIL_COND(p_count < 0);
|
||||
int delta = p_count - settings.size() + 1;
|
||||
|
||||
int delta = p_count - settings.size();
|
||||
if (delta < 0) {
|
||||
for (int i = delta; i < 0; i++) {
|
||||
memdelete(settings[settings.size() + i]);
|
||||
}
|
||||
}
|
||||
settings.resize(p_count);
|
||||
delta++;
|
||||
if (delta > 1) {
|
||||
for (int i = 1; i < delta; i++) {
|
||||
settings.write[p_count - i] = memnew(SpringBone3DSetting);
|
||||
|
@ -949,8 +958,14 @@ void SpringBoneSimulator3D::set_joint_count(int p_index, int p_count) {
|
|||
ERR_FAIL_INDEX(p_index, settings.size());
|
||||
ERR_FAIL_COND(p_count < 0);
|
||||
Vector<SpringBone3DJointSetting *> &joints = settings[p_index]->joints;
|
||||
int delta = p_count - joints.size() + 1;
|
||||
int delta = p_count - joints.size();
|
||||
if (delta < 0) {
|
||||
for (int i = delta; i < 0; i++) {
|
||||
memdelete(joints[joints.size() + i]);
|
||||
}
|
||||
}
|
||||
joints.resize(p_count);
|
||||
delta++;
|
||||
if (delta > 1) {
|
||||
for (int i = 1; i < delta; i++) {
|
||||
joints.write[p_count - i] = memnew(SpringBone3DJointSetting);
|
||||
|
@ -1659,3 +1674,7 @@ Quaternion SpringBoneSimulator3D::get_from_to_rotation(const Vector3 &p_from, co
|
|||
}
|
||||
return Quaternion(axis.normalized(), angle);
|
||||
}
|
||||
|
||||
SpringBoneSimulator3D::~SpringBoneSimulator3D() {
|
||||
clear_settings();
|
||||
}
|
||||
|
|
|
@ -284,6 +284,8 @@ public:
|
|||
#ifdef TOOLS_ENABLED
|
||||
virtual bool is_processed_on_saving() const override { return true; }
|
||||
#endif
|
||||
|
||||
~SpringBoneSimulator3D();
|
||||
};
|
||||
|
||||
VARIANT_ENUM_CAST(SpringBoneSimulator3D::BoneDirection);
|
||||
|
|
|
@ -2330,6 +2330,8 @@ TypedArray<Dictionary> GraphEdit::_get_connections_intersecting_with_rect(const
|
|||
}
|
||||
|
||||
TypedArray<Dictionary> GraphEdit::_get_connection_list_from_node(const StringName &p_node) const {
|
||||
ERR_FAIL_COND_V(!connection_map.has(p_node), TypedArray<Dictionary>());
|
||||
|
||||
List<Ref<GraphEdit::Connection>> connections_from_node = connection_map.get(p_node);
|
||||
TypedArray<Dictionary> connections_from_node_dict;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue