annotate libpurple/dbus-maybe.h @ 24696:0e8d91cdd63a

Change the msim_msg_clone_element() function to respect the "dynamic_name" flag when cloning elements. This fixes the bug where buddies didn't appear in their correct groups the first time you sign in. The problem is that msim_add_contact_from_server() doesn't have the username, so it calls msim_lookup_user() and clones the contact_info. The problem is that the cloned version of the contact_info points to dynamic names which are freed before we get the response from the user lookup. So msim_add_contact_from_server_cb() is called and based the contact_info, but the names in the contact_info point to freed memory, so we couldn't lookup the uid or the group.
author Mark Doliner <mark@kingant.net>
date Mon, 15 Dec 2008 04:08:31 +0000
parents 1568dc7a14f8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
1 /* This file contains macros that wrap calls to the purple dbus module.
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2 These macros call the appropriate functions if the build includes
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3 dbus support and do nothing otherwise. See "dbus-server.h" for
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4 documentation. */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
6 #ifndef _PURPLE_DBUS_MAYBE_H_
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
7 #define _PURPLE_DBUS_MAYBE_H_
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
9 #ifdef HAVE_DBUS
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
10
22983
410f1bf7f734 I have no idea why this only started being an issue now, but as I was
Stu Tomlinson <stu@nosnilmot.com>
parents: 15823
diff changeset
11 #ifndef DBUS_API_SUBJECT_TO_CHANGE
410f1bf7f734 I have no idea why this only started being an issue now, but as I was
Stu Tomlinson <stu@nosnilmot.com>
parents: 15823
diff changeset
12 #define DBUS_API_SUBJECT_TO_CHANGE
410f1bf7f734 I have no idea why this only started being an issue now, but as I was
Stu Tomlinson <stu@nosnilmot.com>
parents: 15823
diff changeset
13 #endif
410f1bf7f734 I have no idea why this only started being an issue now, but as I was
Stu Tomlinson <stu@nosnilmot.com>
parents: 15823
diff changeset
14
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
15 #include "dbus-server.h"
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
16
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
17 /* this provides a type check */
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
18 #define PURPLE_DBUS_REGISTER_POINTER(ptr, type) { \
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
19 type *typed_ptr = ptr; \
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
20 purple_dbus_register_pointer(typed_ptr, PURPLE_DBUS_TYPE(type)); \
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
21 }
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
22 #define PURPLE_DBUS_UNREGISTER_POINTER(ptr) purple_dbus_unregister_pointer(ptr)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
23
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
24 #else /* !HAVE_DBUS */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
25
23964
1568dc7a14f8 Warnings cleanup from Lee Roach. Fixes #6242.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22983
diff changeset
26 #define PURPLE_DBUS_REGISTER_POINTER(ptr, type) { \
1568dc7a14f8 Warnings cleanup from Lee Roach. Fixes #6242.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22983
diff changeset
27 if (ptr) {} \
1568dc7a14f8 Warnings cleanup from Lee Roach. Fixes #6242.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22983
diff changeset
28 }
1568dc7a14f8 Warnings cleanup from Lee Roach. Fixes #6242.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22983
diff changeset
29
15823
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15374
diff changeset
30 #define PURPLE_DBUS_UNREGISTER_POINTER(ptr)
15374
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
31 #define DBUS_EXPORT
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
32
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
33 #endif /* HAVE_DBUS */
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
34
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
35 #endif