From 7fc075d235df742728c04b19690ba8485c9d8bec Mon Sep 17 00:00:00 2001 From: kobewi Date: Sat, 10 Sep 2022 19:34:26 +0200 Subject: Prevent infinite loops in editor help search --- editor/editor_help_search.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/editor/editor_help_search.cpp b/editor/editor_help_search.cpp index af0cff9ad6..4033fc2269 100644 --- a/editor/editor_help_search.cpp +++ b/editor/editor_help_search.cpp @@ -326,6 +326,7 @@ bool EditorHelpSearch::Runner::_phase_match_classes_init() { bool EditorHelpSearch::Runner::_phase_match_classes() { DocData::ClassDoc &class_doc = iterator_doc->value; if (class_doc.name.is_empty()) { + ++iterator_doc; return false; } if (!_is_class_disabled_by_feature_profile(class_doc.name)) { @@ -432,7 +433,7 @@ bool EditorHelpSearch::Runner::_phase_class_items_init() { bool EditorHelpSearch::Runner::_phase_class_items() { if (!iterator_match) { - return false; + return true; } ClassMatch &match = iterator_match->value; @@ -459,10 +460,8 @@ bool EditorHelpSearch::Runner::_phase_member_items_init() { bool EditorHelpSearch::Runner::_phase_member_items() { ClassMatch &match = iterator_match->value; - if (!match.doc) { - return false; - } - if (match.doc->name.is_empty()) { + if (!match.doc || match.doc->name.is_empty()) { + ++iterator_match; return false; } -- cgit v1.2.3