Mercurial > emacs
comparison src/dbusbind.c @ 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 | 7e091be752b1 |
children | 029e4783cbae 376148b31b5e |
comparison
equal
deleted
inserted
replaced
111162:bd94f8980f47 | 111251:2dcdfeb8d47c |
---|---|
1173 SDATA (service), | 1173 SDATA (service), |
1174 SDATA (path), | 1174 SDATA (path), |
1175 SDATA (interface), | 1175 SDATA (interface), |
1176 SDATA (method)); | 1176 SDATA (method)); |
1177 | 1177 |
1178 /* Check dbus-registered-objects-table. */ | |
1179 if (!HASH_TABLE_P (Vdbus_registered_objects_table)) | |
1180 XD_SIGNAL1 (build_string ("dbus.el is not loaded")); | |
1181 | |
1178 /* Open a connection to the bus. */ | 1182 /* Open a connection to the bus. */ |
1179 connection = xd_initialize (bus); | 1183 connection = xd_initialize (bus); |
1180 | 1184 |
1181 /* Create the message. */ | 1185 /* Create the message. */ |
1182 dmessage = dbus_message_new_method_call (SDATA (service), | 1186 dmessage = dbus_message_new_method_call (SDATA (service), |
1861 CHECK_STRING (signal); | 1865 CHECK_STRING (signal); |
1862 if (!FUNCTIONP (handler)) | 1866 if (!FUNCTIONP (handler)) |
1863 wrong_type_argument (intern ("functionp"), handler); | 1867 wrong_type_argument (intern ("functionp"), handler); |
1864 GCPRO6 (bus, service, path, interface, signal, handler); | 1868 GCPRO6 (bus, service, path, interface, signal, handler); |
1865 | 1869 |
1870 /* Check dbus-registered-objects-table. */ | |
1871 if (!HASH_TABLE_P (Vdbus_registered_objects_table)) | |
1872 XD_SIGNAL1 (build_string ("dbus.el is not loaded")); | |
1873 | |
1866 /* Retrieve unique name of service. If service is a known name, we | 1874 /* Retrieve unique name of service. If service is a known name, we |
1867 will register for the corresponding unique name, if any. Signals | 1875 will register for the corresponding unique name, if any. Signals |
1868 are sent always with the unique name as sender. Note: the unique | 1876 are sent always with the unique name as sender. Note: the unique |
1869 name of "org.freedesktop.DBus" is that string itself. */ | 1877 name of "org.freedesktop.DBus" is that string itself. */ |
1870 if ((STRINGP (service)) | 1878 if ((STRINGP (service)) |
1974 if (!FUNCTIONP (handler)) | 1982 if (!FUNCTIONP (handler)) |
1975 wrong_type_argument (intern ("functionp"), handler); | 1983 wrong_type_argument (intern ("functionp"), handler); |
1976 /* TODO: We must check for a valid service name, otherwise there is | 1984 /* TODO: We must check for a valid service name, otherwise there is |
1977 a segmentation fault. */ | 1985 a segmentation fault. */ |
1978 | 1986 |
1987 /* Check dbus-registered-objects-table. */ | |
1988 if (!HASH_TABLE_P (Vdbus_registered_objects_table)) | |
1989 XD_SIGNAL1 (build_string ("dbus.el is not loaded")); | |
1990 | |
1979 /* Open a connection to the bus. */ | 1991 /* Open a connection to the bus. */ |
1980 connection = xd_initialize (bus); | 1992 connection = xd_initialize (bus); |
1981 | 1993 |
1982 /* Request the known name from the bus. We can ignore the result, | 1994 /* Request the known name from the bus. We can ignore the result, |
1983 it is set to -1 if there is an error - kind of redundancy. */ | 1995 it is set to -1 if there is an error - kind of redundancy. */ |