diff options
author | Aaron McCarthy <mccarthy.aaron@gmail.com> | 2014-11-20 15:26:36 +1000 |
---|---|---|
committer | Aaron McCarthy <mccarthy.aaron@gmail.com> | 2014-12-04 05:40:30 +0100 |
commit | 9501fef5da5f3e5f0d02d9e78d014a5462d27389 (patch) | |
tree | 91256779acbb7de307159c7d22ce2d080686a91f /src/dbus/qdbusargument_p.h | |
parent | 9ef3ff30e1119ed61791eabe237758665e574060 (diff) |
Fix DBus signature generation for complex types.
When generating the DBus signature of a registered custom type the
marshaller appends the signatures of the map entries and array items
after the map/array causing an invalid DBus signature to be generated.
This happens because beginArray() and beginMap() output the full
signature of the data.
Fixed by suppressing changes to the signature within
beginArray()/endArray() and beginMap()/endMap() blocks.
Change-Id: Icaf23b2fe58a3e1f575b81e4a100f02684f68452
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/dbus/qdbusargument_p.h')
-rw-r--r-- | src/dbus/qdbusargument_p.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/dbus/qdbusargument_p.h b/src/dbus/qdbusargument_p.h index 12039307e1..5f8c13c2c5 100644 --- a/src/dbus/qdbusargument_p.h +++ b/src/dbus/qdbusargument_p.h @@ -97,7 +97,7 @@ public: class QDBusMarshaller: public QDBusArgumentPrivate { public: - QDBusMarshaller(int flags) : QDBusArgumentPrivate(flags), parent(0), ba(0), closeCode(0), ok(true) + QDBusMarshaller(int flags) : QDBusArgumentPrivate(flags), parent(0), ba(0), closeCode(0), ok(true), skipSignature(false) { direction = Marshalling; } ~QDBusMarshaller(); @@ -145,6 +145,7 @@ public: QString errorString; char closeCode; bool ok; + bool skipSignature; private: Q_DISABLE_COPY(QDBusMarshaller) |