File tree Expand file tree Collapse file tree 1 file changed +6
-11
lines changed Expand file tree Collapse file tree 1 file changed +6
-11
lines changed Original file line number Diff line number Diff line change @@ -35,7 +35,7 @@ DECLARE_MESSAGE(ScreenResolutionChanged);
35
35
struct MessageObject
36
36
{
37
37
IPure* Object;
38
- int Prio;
38
+ unsigned long Prio;
39
39
};
40
40
41
41
template <class T >
@@ -44,19 +44,12 @@ class MessageRegistry
44
44
bool changed, inProcess;
45
45
xr_vector<MessageObject> messages;
46
46
47
- static int __cdecl compare (const void * e1 , const void * e2 )
48
- {
49
- MessageObject* p1 = (MessageObject*)e1 ;
50
- MessageObject* p2 = (MessageObject*)e2 ;
51
- return p2->Prio - p1->Prio ;
52
- }
53
-
54
47
public:
55
48
MessageRegistry () : changed(false ), inProcess(false ) {}
56
49
57
50
void Clear () { messages.clear (); }
58
51
59
- constexpr void Add (T* object, const int priority = REG_PRIORITY_NORMAL)
52
+ constexpr void Add (T* object, unsigned long priority = REG_PRIORITY_NORMAL)
60
53
{
61
54
Add ({ object, priority });
62
55
}
@@ -117,8 +110,10 @@ class MessageRegistry
117
110
118
111
void Resort ()
119
112
{
120
- if (!messages.empty ())
121
- qsort (&messages.front (), messages.size (), sizeof (MessageObject), compare);
113
+ if (!messages.empty ()) {
114
+ std::sort (std::begin (messages), std::end (messages),
115
+ [](const auto & a, const auto & b) { return a.Prio < b.Prio ; });
116
+ }
122
117
123
118
while (!messages.empty () && messages.back ().Prio == REG_PRIORITY_INVALID)
124
119
messages.pop_back ();
You can’t perform that action at this time.
0 commit comments