annotate plugins/mono/api/Signal.cs @ 13905:4e44ecb866bd
[gaim-migrate @ 16394]
msn_session_sync_users() iterates over the buddy list, following the ->next pointers of the groups, contacts, and buddies. msn_show_sync_issue(), if called, removed the buddy for which it was called, in preparation for the buddy either being added to the server list or confirmed-to-be-removed. This could lead to the buddy pointer being released and ->next therefore being junk.
The buddy is now not removed until the user responds to the action dialog presented via msn_show_sync_issue(). I'm unclear why gtkgaim got away with this exercise in memory stomping but Adium/libgaim crashed every time, but it's safer in any case.
I also changed some foo->bar to gaim_foo_get_bar().
committer: Tailor Script <tailor@pidgin.im>
| author |
Evan Schoenberg <evan.s@dreskin.net> |
| date |
Sun, 02 Jul 2006 09:37:25 +0000 |
| parents |
a3302d271199 |
| children |
|
| rev |
line source |
|
11660
|
1 using System;
|
|
|
2 using System.Runtime.CompilerServices;
|
|
|
3
|
|
|
4 namespace Gaim
|
|
|
5 {
|
|
|
6 public class Signal
|
|
|
7 {
|
|
|
8 [MethodImplAttribute(MethodImplOptions.InternalCall)]
|
|
|
9 extern private static int _connect(IntPtr handle, object plugin, string signal, object evnt);
|
|
|
10
|
|
|
11 public delegate void Handler(object[] args);
|
|
|
12
|
|
|
13 public static int connect(IntPtr handle, object plugin, string signal, object evnt)
|
|
|
14 {
|
|
|
15 return _connect(handle, plugin, signal, evnt);
|
|
|
16 }
|
|
|
17 }
|
|
|
18 }
|