From d2d26fdabd2b2ac27bf86d37f6b0beca865718ac Mon Sep 17 00:00:00 2001 From: Sascha Silbe Date: Sun, 10 Apr 2011 18:46:07 +0000 Subject: Fix D-Bus marshalling of (byte) strings. D-Bus transmits Python (byte) strings as D-Bus (character) strings by default, so we need to explicitly convert them to D-Bus ByteArrays. --- diff --git a/src/gdatastore/datastore.py b/src/gdatastore/datastore.py index 57f6bdf..1cb8555 100644 --- a/src/gdatastore/datastore.py +++ b/src/gdatastore/datastore.py @@ -278,11 +278,12 @@ class InternalApi(object): options) #logging.debug('object_ids=%r', object_ids) property_names = options.pop('metadata', None) - if property_names: - for entry in entries: - for name in entry.keys(): - if name not in property_names: - del entry[name] + for entry in entries: + for name in entry.keys(): + if property_names and name not in property_names: + del entry[name] + elif isinstance(entry[name], str): + entry[name] = dbus.ByteArray(entry[name]) return entries, total_count -- cgit v0.9.1