Skip to content

Commit 3b67e73

Browse files
authored
Fix problem with deterministic std::stable_sort (#16987)
caused a SIGABRT when compiled with MacOSX26.2.sdk
1 parent 1a8aca6 commit 3b67e73

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/gui/guiFormSpecMenu.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3360,8 +3360,11 @@ void GUIFormSpecMenu::legacySortElements(std::list<IGUIElement *>::iterator from
33603360
// TODO: getSpecByID is a linear search. It should made O(1), or cached here.
33613361
const FieldSpec *spec_a = getSpecByID(a->getID());
33623362
const FieldSpec *spec_b = getSpecByID(b->getID());
3363-
return spec_a && spec_b &&
3364-
spec_a->priority < spec_b->priority;
3363+
// Have to be deterministic also for elements without spec
3364+
if (spec_a && spec_b)
3365+
return spec_a->priority < spec_b->priority;
3366+
3367+
return a->getID() < b->getID();
33653368
});
33663369

33673370
// 3: Re-assign the pointers

0 commit comments

Comments
 (0)