annotate libpurple/dbus-maybe.h @ 28850:4478ce23487a

If a buddy is deleted less than 11 seconds after they sign on or off, and there is a conversation open with that buddy, the PurpleBuddy will be dereferenced after it has been freed. This avoids that by duplicating the required details from the PurpleBuddy for use in the status_timeout callback.
author Stu Tomlinson <stu@nosnilmot.com>
date Wed, 06 Jan 2010 00:55:08 +0000
parents 1568dc7a14f8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
1 /* This file contains macros that wrap calls to the purple dbus module.
15373
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
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
6 #ifndef _PURPLE_DBUS_MAYBE_H_
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
7 #define _PURPLE_DBUS_MAYBE_H_
15373
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
22981
410f1bf7f734 I have no idea why this only started being an issue now, but as I was
Stu Tomlinson <stu@nosnilmot.com>
parents: 15822
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: 15822
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: 15822
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: 15822
diff changeset
14
15373
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 */
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
18 #define PURPLE_DBUS_REGISTER_POINTER(ptr, type) { \
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
19 type *typed_ptr = ptr; \
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
20 purple_dbus_register_pointer(typed_ptr, PURPLE_DBUS_TYPE(type)); \
15373
5fe8042783c1 Rename gtk/ and libgaim/ to pidgin/ and libpurple/
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
21 }
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
22 #define PURPLE_DBUS_UNREGISTER_POINTER(ptr) purple_dbus_unregister_pointer(ptr)
15373
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
24034
1568dc7a14f8 Warnings cleanup from Lee Roach. Fixes #6242.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22981
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: 22981
diff changeset
27 if (ptr) {} \
1568dc7a14f8 Warnings cleanup from Lee Roach. Fixes #6242.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22981
diff changeset
28 }
1568dc7a14f8 Warnings cleanup from Lee Roach. Fixes #6242.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 22981
diff changeset
29
15822
32c366eeeb99 sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@gmail.com>
parents: 15373
diff changeset
30 #define PURPLE_DBUS_UNREGISTER_POINTER(ptr)
15373
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