Mercurial > pidgin
annotate src/protocols/msn/object.h @ 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 | fc464a0abccc |
children |
rev | line source |
---|---|
9193 | 1 /** |
2 * @file object.h MSNObject API | |
3 * | |
4 * gaim | |
5 * | |
9198
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
6 * Gaim is the legal property of its developers, whose names are too numerous |
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
7 * to list here. Please refer to the COPYRIGHT file distributed with this |
ab6636c5a136
[gaim-migrate @ 9993]
Christian Hammond <chipx86@chipx86.com>
parents:
9193
diff
changeset
|
8 * source distribution. |
9193 | 9 * |
10 * This program is free software; you can redistribute it and/or modify | |
11 * it under the terms of the GNU General Public License as published by | |
12 * the Free Software Foundation; either version 2 of the License, or | |
13 * (at your option) any later version. | |
14 * | |
15 * This program is distributed in the hope that it will be useful, | |
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 * GNU General Public License for more details. | |
19 * | |
20 * You should have received a copy of the GNU General Public License | |
21 * along with this program; if not, write to the Free Software | |
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
23 */ | |
24 #ifndef _MSN_OBJECT_H_ | |
25 #define _MSN_OBJECT_H_ | |
26 | |
27 #include "internal.h" | |
28 | |
29 typedef enum | |
30 { | |
31 MSN_OBJECT_UNKNOWN = -1, /**< Unknown object */ | |
32 MSN_OBJECT_RESERVED1 = 1, /**< Reserved */ | |
33 MSN_OBJECT_EMOTICON = 2, /**< Custom Emoticon */ | |
34 MSN_OBJECT_USERTILE = 3, /**< UserTile (buddy icon) */ | |
35 MSN_OBJECT_RESERVED2 = 4, /**< Reserved */ | |
36 MSN_OBJECT_BACKGROUND = 5 /**< Background */ | |
37 | |
38 } MsnObjectType; | |
39 | |
40 typedef struct | |
41 { | |
42 gboolean local; | |
43 | |
44 char *creator; | |
45 int size; | |
46 MsnObjectType type; | |
47 char *real_location; | |
48 char *location; | |
49 char *friendly; | |
50 char *sha1d; | |
51 char *sha1c; | |
52 | |
53 } MsnObject; | |
54 | |
55 /** | |
56 * Creates a MsnObject structure. | |
57 * | |
58 * @return A new MsnObject structure. | |
59 */ | |
12323
fc464a0abccc
[gaim-migrate @ 14627]
Richard Laager <rlaager@wiktel.com>
parents:
9198
diff
changeset
|
60 MsnObject *msn_object_new(void); |
9193 | 61 |
62 /** | |
63 * Creates a MsnObject structure from a string. | |
64 * | |
65 * @param str The string. | |
66 * | |
67 * @return The new MsnObject structure. | |
68 */ | |
69 MsnObject *msn_object_new_from_string(const char *str); | |
70 | |
71 /** | |
72 * Destroys an MsnObject structure. | |
73 * | |
74 * @param obj The object structure. | |
75 */ | |
76 void msn_object_destroy(MsnObject *obj); | |
77 | |
78 /** | |
79 * Outputs a string representation of an MsnObject. | |
80 * | |
81 * @param obj The object. | |
82 * | |
83 * @return The string representation. This must be freed. | |
84 */ | |
85 char *msn_object_to_string(const MsnObject *obj); | |
86 | |
87 /** | |
88 * Sets the creator field in a MsnObject. | |
89 * | |
90 * @param creator The creator value. | |
91 */ | |
92 void msn_object_set_creator(MsnObject *obj, const char *creator); | |
93 | |
94 /** | |
95 * Sets the size field in a MsnObject. | |
96 * | |
97 * @param size The size value. | |
98 */ | |
99 void msn_object_set_size(MsnObject *obj, int size); | |
100 | |
101 /** | |
102 * Sets the type field in a MsnObject. | |
103 * | |
104 * @param type The type value. | |
105 */ | |
106 void msn_object_set_type(MsnObject *obj, MsnObjectType type); | |
107 | |
108 /** | |
109 * Sets the location field in a MsnObject. | |
110 * | |
111 * @param location The location value. | |
112 */ | |
113 void msn_object_set_location(MsnObject *obj, const char *location); | |
114 | |
115 /** | |
116 * Sets the friendly name field in a MsnObject. | |
117 * | |
118 * @param friendly The friendly name value. | |
119 */ | |
120 void msn_object_set_friendly(MsnObject *obj, const char *friendly); | |
121 | |
122 /** | |
123 * Sets the SHA1D field in a MsnObject. | |
124 * | |
125 * @param sha1d The sha1d value. | |
126 */ | |
127 void msn_object_set_sha1d(MsnObject *obj, const char *sha1d); | |
128 | |
129 /** | |
130 * Sets the SHA1C field in a MsnObject. | |
131 * | |
132 * @param sha1c The sha1c value. | |
133 */ | |
134 void msn_object_set_sha1c(MsnObject *obj, const char *sha1c); | |
135 | |
136 /** | |
137 * Returns a MsnObject's creator value. | |
138 * | |
139 * @param obj The object. | |
140 * | |
141 * @return The creator value. | |
142 */ | |
143 const char *msn_object_get_creator(const MsnObject *obj); | |
144 | |
145 /** | |
146 * Returns a MsnObject's size value. | |
147 * | |
148 * @param obj The object. | |
149 * | |
150 * @return The size value. | |
151 */ | |
152 int msn_object_get_size(const MsnObject *obj); | |
153 | |
154 /** | |
155 * Returns a MsnObject's type. | |
156 * | |
157 * @param obj The object. | |
158 * | |
159 * @return The object type. | |
160 */ | |
161 MsnObjectType msn_object_get_type(const MsnObject *obj); | |
162 | |
163 /** | |
164 * Returns a MsnObject's location value. | |
165 * | |
166 * @param obj The object. | |
167 * | |
168 * @return The location value. | |
169 */ | |
170 const char *msn_object_get_location(const MsnObject *obj); | |
171 | |
172 /** | |
173 * Returns a MsnObject's friendly name value. | |
174 * | |
175 * @param obj The object. | |
176 * | |
177 * @return The friendly name value. | |
178 */ | |
179 const char *msn_object_get_friendly(const MsnObject *obj); | |
180 | |
181 /** | |
182 * Returns a MsnObject's SHA1D value. | |
183 * | |
184 * @param obj The object. | |
185 * | |
186 * @return The SHA1D value. | |
187 */ | |
188 const char *msn_object_get_sha1d(const MsnObject *obj); | |
189 | |
190 /** | |
191 * Returns a MsnObject's SHA1C value. | |
192 * | |
193 * @param obj The object. | |
194 * | |
195 * @return The SHA1C value. | |
196 */ | |
197 const char *msn_object_get_sha1c(const MsnObject *obj); | |
198 | |
199 void msn_object_set_local(MsnObject *obj); | |
200 const char *msn_object_get_real_location(const MsnObject *obj); | |
201 void msn_object_set_real_location(MsnObject *obj, | |
202 const char *real_location); | |
203 | |
204 #endif /* _MSN_OBJECT_H_ */ |