mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-06-14 12:31:25 +00:00
dbusbind: Check required args following :type
* src/dbusbind.c (xd_build_message): If no argument follows a type specification, pass Qnil as OBJECT argument of xd_append_arg_with_type_spec. * test/automated/dbus-tests.el (dbus-test04-create-message-parameters): Remove a temporary comment.
This commit is contained in:
parent
777848833c
commit
def5829c07
2 changed files with 10 additions and 2 deletions
|
|
@ -1683,7 +1683,16 @@ xd_build_message (Lisp_Object caller, struct xd_message *xmessage,
|
|||
{
|
||||
if (EQ (args[count], QCdbus_type_type))
|
||||
{
|
||||
xd_append_arg_with_type_spec (args[count+1], args[count+2], &iter);
|
||||
/* At least one object must follow the `:type' symbol. */
|
||||
if (!(count+1 < nargs))
|
||||
wrong_type_argument (intern ("D-Bus"), QCdbus_type_type);
|
||||
|
||||
/* It is possible that no argument follows a type
|
||||
specification, when the type is an empty compound type.
|
||||
Assume it as nil. */
|
||||
xd_append_arg_with_type_spec (args[count+1],
|
||||
count+2 < nargs ? args[count+2] : Qnil,
|
||||
&iter);
|
||||
count += 2;
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -214,7 +214,6 @@ This includes initialization and closing the bus."
|
|||
(should (equal (plist-get message :args) '(((:array nil) nil))))
|
||||
(should (equal (plist-get message :signature) "au"))
|
||||
;; Test explicit type specifications with `:type' keyword for empty array.
|
||||
;; DOES THIS WORK?
|
||||
(setq message (dbus--test-create-message-with-args
|
||||
:type '(:array :uint32)))
|
||||
(should (equal (plist-get message :args) '(((:array nil) nil))))
|
||||
|
|
|
|||
Loading…
Reference in a new issue