Merge pull request #26978 from qarmin/fix_recursive_bitmapfont_crash

Fix crash when trying to set as Bitmap Font fallback one of his parent
This commit is contained in:
Rémi Verschelde 2019-05-28 13:49:34 +02:00 committed by GitHub
commit bf6f41e0b9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 2 deletions

View file

@ -530,7 +530,13 @@ Size2 Font::get_wordwrap_string_size(const String &p_string, float p_width) cons
void BitmapFont::set_fallback(const Ref<BitmapFont> &p_fallback) {
ERR_FAIL_COND(p_fallback == this);
for (Ref<BitmapFont> fallback_child = p_fallback; fallback_child != NULL; fallback_child = fallback_child->get_fallback()) {
if (fallback_child == this) {
ERR_EXPLAIN("Can't set as fallback one of its parents to prevent crashes due to recursive loop.");
ERR_FAIL_COND(fallback_child == this);
}
}
fallback = p_fallback;
}

View file

@ -38,7 +38,12 @@
void Material::set_next_pass(const Ref<Material> &p_pass) {
ERR_FAIL_COND(p_pass == this);
for (Ref<Material> pass_child = p_pass; pass_child != NULL; pass_child = pass_child->get_next_pass()) {
if (pass_child == this) {
ERR_EXPLAIN("Can't set as next_pass one of its parents to prevent crashes due to recursive loop.");
ERR_FAIL_COND(pass_child == this);
}
}
if (next_pass == p_pass)
return;