* dbusbind.c (xd_read_message): Return value is a Lisp_Object.

Move check for Vdbus_registered_functions_table to
xd_read_queued_messages.
(xd_read_queued_messages): Protect xd_read_message calls by
internal_condition_case_1.
This commit is contained in:
Michael Albinus 2007-12-05 21:53:40 +00:00
parent f267053c86
commit 96faeb40c2
2 changed files with 21 additions and 9 deletions

View file

@ -1,3 +1,11 @@
2007-12-05 Michael Albinus <michael.albinus@gmx.de>
* dbusbind.c (xd_read_message): Return value is a Lisp_Object.
Move check for Vdbus_registered_functions_table to
xd_read_queued_messages.
(xd_read_queued_messages): Protect xd_read_message calls by
internal_condition_case_1.
2007-12-04 Michael Albinus <michael.albinus@gmx.de>
* dbusbind.c (QCdbus_system_bus, QCdbus_session_bus): Renamed from

View file

@ -538,7 +538,7 @@ usage: (dbus-send-signal BUS SIGNAL SERVICE PATH INTERFACE &rest ARGS) */)
/* Read queued incoming message of the D-Bus BUS. BUS is a Lisp
symbol, either :system or :session. */
void
Lisp_Object
xd_read_message (bus)
Lisp_Object bus;
{
@ -551,12 +551,6 @@ xd_read_message (bus)
uint dtype;
char service[1024], path[1024], interface[1024], member[1024];
/* Vdbus_registered_functions_table will be made as hash table in
dbus.el. When it isn't loaded yet, it doesn't make sense to
handle D-Bus messages. */
if (!HASH_TABLE_P (Vdbus_registered_functions_table))
return;
/* Open a connection to the bus. */
connection = xd_initialize (bus);
@ -635,8 +629,18 @@ xd_read_message (bus)
void
xd_read_queued_messages ()
{
xd_read_message (QCdbus_system_bus);
xd_read_message (QCdbus_session_bus);
/* Vdbus_registered_functions_table will be made as hash table in
dbus.el. When it isn't loaded yet, it doesn't make sense to
handle D-Bus messages. Furthermore, we ignore all Lisp errors
during the call. */
if (HASH_TABLE_P (Vdbus_registered_functions_table))
{
internal_condition_case_1 (xd_read_message, QCdbus_system_bus,
Qerror, Fidentity);
internal_condition_case_1 (xd_read_message, QCdbus_session_bus,
Qerror, Fidentity);
}
}
DEFUN ("dbus-register-signal", Fdbus_register_signal, Sdbus_register_signal,