changeset 111251:2dcdfeb8d47c

* dbusbind.c (Fdbus_call_method_asynchronously) (Fdbus_register_signal, Fdbus_register_method): Check, whether `dbus-registered-objects-table' is initialized. Must not be synchronized with the trunk.
author Michael Albinus <michael.albinus@gmx.de>
date Mon, 25 Oct 2010 13:46:21 +0200
parents bd94f8980f47
children c430a68b7083
files src/ChangeLog src/dbusbind.c
diffstat 2 files changed, 18 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sun Oct 24 17:05:11 2010 -0400
+++ b/src/ChangeLog	Mon Oct 25 13:46:21 2010 +0200
@@ -1,3 +1,9 @@
+2010-10-25  Michael Albinus  <michael.albinus@gmx.de>
+
+	* dbusbind.c (Fdbus_call_method_asynchronously)
+	(Fdbus_register_signal, Fdbus_register_method): Check, whether
+	`dbus-registered-objects-table' is initialized.
+
 2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 
 	* xterm.c (x_connection_closed): Kill Emacs unconditionally.
--- a/src/dbusbind.c	Sun Oct 24 17:05:11 2010 -0400
+++ b/src/dbusbind.c	Mon Oct 25 13:46:21 2010 +0200
@@ -1175,6 +1175,10 @@
 		    SDATA (interface),
 		    SDATA (method));
 
+  /* Check dbus-registered-objects-table.  */
+  if (!HASH_TABLE_P (Vdbus_registered_objects_table))
+    XD_SIGNAL1 (build_string ("dbus.el is not loaded"));
+
   /* Open a connection to the bus.  */
   connection = xd_initialize (bus);
 
@@ -1863,6 +1867,10 @@
     wrong_type_argument (intern ("functionp"), handler);
   GCPRO6 (bus, service, path, interface, signal, handler);
 
+  /* Check dbus-registered-objects-table.  */
+  if (!HASH_TABLE_P (Vdbus_registered_objects_table))
+    XD_SIGNAL1 (build_string ("dbus.el is not loaded"));
+
   /* Retrieve unique name of service.  If service is a known name, we
      will register for the corresponding unique name, if any.  Signals
      are sent always with the unique name as sender.  Note: the unique
@@ -1976,6 +1984,10 @@
   /* TODO: We must check for a valid service name, otherwise there is
      a segmentation fault.  */
 
+  /* Check dbus-registered-objects-table.  */
+  if (!HASH_TABLE_P (Vdbus_registered_objects_table))
+    XD_SIGNAL1 (build_string ("dbus.el is not loaded"));
+
   /* Open a connection to the bus.  */
   connection = xd_initialize (bus);