author | Myhailo Danylenko <isbear@ukrpost.net> |
Thu, 09 Aug 2012 00:17:37 +0300 | |
changeset 45 | 1c28cf9dca25 |
parent 43 | e0cda680d7a8 |
permissions | -rw-r--r-- |
42
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
1 |
# HG changeset patch |
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
2 |
# Parent 26edaf6ea10b8db2ed07da3e4ad9bee03077de84 |
43
e0cda680d7a8
Move add-offline-message to experimental
Myhailo Danylenko <isbear@ukrpost.net>
parents:
42
diff
changeset
|
3 |
Fix endless loop on exhaustion of completion category pool |
42
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
4 |
|
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
5 |
diff -r 26edaf6ea10b mcabber/mcabber/compl.c |
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
6 |
--- a/mcabber/mcabber/compl.c Mon Jul 30 22:39:17 2012 +0200 |
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
7 |
+++ b/mcabber/mcabber/compl.c Wed Aug 08 12:15:20 2012 +0300 |
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
8 |
@@ -97,10 +97,11 @@ |
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
9 |
// as it is likely to change in future. |
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
10 |
guint compl_new_category(void) |
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
11 |
{ |
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
12 |
+ const guint maxcat = 8 * sizeof (registered_cats); |
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
13 |
guint i = 0; |
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
14 |
- while ((registered_cats >> i) & 1) |
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
15 |
+ while ((registered_cats >> i) & 1 && i < maxcat) |
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
16 |
i++; |
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
17 |
- if (i >= 8 * sizeof (registered_cats)) |
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
18 |
+ if (i >= maxcat) |
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
19 |
return 0; |
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
20 |
else { |
0ee5e9903fa1
Add fix-create-new-cat.diff
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff
changeset
|
21 |
guint64 id = 1 << i; |