diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2019-11-10 10:17:19 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-10 10:17:19 +0100 |
commit | 2143f46df26bde529db350f4b5965a6508385c2f (patch) | |
tree | d4bdab6220f7e24d7fad88087fb6c566bd6ff2b2 /scene | |
parent | 2fdeed1b4f3820bebf9f39d69eb8bd59e1c4f2f2 (diff) | |
parent | 7dda9309f91a71b9b3e2088f11bc322e3c15d669 (diff) |
Merge pull request #33516 from qarmin/small_fixes
Memory leaks and crash fixes
Diffstat (limited to 'scene')
-rw-r--r-- | scene/gui/range.cpp | 1 | ||||
-rw-r--r-- | scene/gui/tree.cpp | 1 | ||||
-rw-r--r-- | scene/resources/texture.cpp | 9 |
3 files changed, 10 insertions, 1 deletions
diff --git a/scene/gui/range.cpp b/scene/gui/range.cpp index ed5dd77f53..9c016b5a50 100644 --- a/scene/gui/range.cpp +++ b/scene/gui/range.cpp @@ -213,6 +213,7 @@ void Range::unshare() { nshared->val = shared->val; nshared->step = shared->step; nshared->page = shared->page; + nshared->exp_ratio = shared->exp_ratio; nshared->allow_greater = shared->allow_greater; nshared->allow_lesser = shared->allow_lesser; _unref_shared(); diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp index 2c38676c83..a44b42a467 100644 --- a/scene/gui/tree.cpp +++ b/scene/gui/tree.cpp @@ -4049,6 +4049,7 @@ Tree::Tree() { drop_mode_section = 0; single_select_defer = NULL; + scrolling = false; allow_rmb_select = false; force_edit_checkbox_only_on_checkbox = false; diff --git a/scene/resources/texture.cpp b/scene/resources/texture.cpp index c2e2f85723..593c399f62 100644 --- a/scene/resources/texture.cpp +++ b/scene/resources/texture.cpp @@ -2369,16 +2369,20 @@ RES ResourceFormatLoaderTextureLayered::load(const String &p_path, const String if (header[0] == 'G' && header[1] == 'D' && header[2] == '3' && header[3] == 'T') { if (tex3d.is_null()) { + f->close(); memdelete(f); ERR_FAIL_COND_V(tex3d.is_null(), RES()) } } else if (header[0] == 'G' && header[1] == 'D' && header[2] == 'A' && header[3] == 'T') { if (texarr.is_null()) { + f->close(); memdelete(f); ERR_FAIL_COND_V(texarr.is_null(), RES()) } } else { + f->close(); + memdelete(f); ERR_FAIL_V_MSG(RES(), "Unrecognized layered texture file format '" + String((const char *)header) + "'."); } @@ -2418,6 +2422,7 @@ RES ResourceFormatLoaderTextureLayered::load(const String &p_path, const String if (r_error) { *r_error = ERR_FILE_CORRUPT; } + f->close(); memdelete(f); ERR_FAIL_V(RES()); } @@ -2453,6 +2458,7 @@ RES ResourceFormatLoaderTextureLayered::load(const String &p_path, const String if (r_error) { *r_error = ERR_FILE_CORRUPT; } + f->close(); memdelete(f); ERR_FAIL_V(RES()); } @@ -2473,8 +2479,9 @@ RES ResourceFormatLoaderTextureLayered::load(const String &p_path, const String if (bytes != total_size) { if (r_error) { *r_error = ERR_FILE_CORRUPT; - memdelete(f); } + f->close(); + memdelete(f); ERR_FAIL_V(RES()); } } |