diff options
Diffstat (limited to 'src/dbusbind.c')
| -rw-r--r-- | src/dbusbind.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/dbusbind.c b/src/dbusbind.c index 581b5ffd541..07fc24243d7 100644 --- a/src/dbusbind.c +++ b/src/dbusbind.c | |||
| @@ -538,7 +538,7 @@ usage: (dbus-send-signal BUS SIGNAL SERVICE PATH INTERFACE &rest ARGS) */) | |||
| 538 | 538 | ||
| 539 | /* Read queued incoming message of the D-Bus BUS. BUS is a Lisp | 539 | /* Read queued incoming message of the D-Bus BUS. BUS is a Lisp |
| 540 | symbol, either :system or :session. */ | 540 | symbol, either :system or :session. */ |
| 541 | void | 541 | Lisp_Object |
| 542 | xd_read_message (bus) | 542 | xd_read_message (bus) |
| 543 | Lisp_Object bus; | 543 | Lisp_Object bus; |
| 544 | { | 544 | { |
| @@ -551,12 +551,6 @@ xd_read_message (bus) | |||
| 551 | uint dtype; | 551 | uint dtype; |
| 552 | char service[1024], path[1024], interface[1024], member[1024]; | 552 | char service[1024], path[1024], interface[1024], member[1024]; |
| 553 | 553 | ||
| 554 | /* Vdbus_registered_functions_table will be made as hash table in | ||
| 555 | dbus.el. When it isn't loaded yet, it doesn't make sense to | ||
| 556 | handle D-Bus messages. */ | ||
| 557 | if (!HASH_TABLE_P (Vdbus_registered_functions_table)) | ||
| 558 | return; | ||
| 559 | |||
| 560 | /* Open a connection to the bus. */ | 554 | /* Open a connection to the bus. */ |
| 561 | connection = xd_initialize (bus); | 555 | connection = xd_initialize (bus); |
| 562 | 556 | ||
| @@ -635,8 +629,18 @@ xd_read_message (bus) | |||
| 635 | void | 629 | void |
| 636 | xd_read_queued_messages () | 630 | xd_read_queued_messages () |
| 637 | { | 631 | { |
| 638 | xd_read_message (QCdbus_system_bus); | 632 | |
| 639 | xd_read_message (QCdbus_session_bus); | 633 | /* Vdbus_registered_functions_table will be made as hash table in |
| 634 | dbus.el. When it isn't loaded yet, it doesn't make sense to | ||
| 635 | handle D-Bus messages. Furthermore, we ignore all Lisp errors | ||
| 636 | during the call. */ | ||
| 637 | if (HASH_TABLE_P (Vdbus_registered_functions_table)) | ||
| 638 | { | ||
| 639 | internal_condition_case_1 (xd_read_message, QCdbus_system_bus, | ||
| 640 | Qerror, Fidentity); | ||
| 641 | internal_condition_case_1 (xd_read_message, QCdbus_session_bus, | ||
| 642 | Qerror, Fidentity); | ||
| 643 | } | ||
| 640 | } | 644 | } |
| 641 | 645 | ||
| 642 | DEFUN ("dbus-register-signal", Fdbus_register_signal, Sdbus_register_signal, | 646 | DEFUN ("dbus-register-signal", Fdbus_register_signal, Sdbus_register_signal, |