Commit 3c6ef3df authored by Owen Fraser-Green's avatar Owen Fraser-Green

Handle empty iterators properly!

parent e16dafeb
......@@ -181,9 +181,9 @@ namespace DBus
string key = "";
// Iterate through the parameters getting the type codes to a string
bool empty = dbus_message_iter_init(message.RawMessage, iter);
bool notEmpty = dbus_message_iter_init(message.RawMessage, iter);
if (!empty) {
if (notEmpty) {
do {
char code = (char) dbus_message_iter_get_arg_type(iter);
if (code == '\0')
......@@ -221,7 +221,7 @@ namespace DBus
{
private Arguments arguments;
private bool started = false;
private bool empty = false;
private bool notEmpty = false;
private IntPtr iter = Marshal.AllocCoTaskMem(Arguments.DBusMessageIterSize);
public ArgumentsEnumerator(Arguments arguments)
......@@ -241,13 +241,13 @@ namespace DBus
return dbus_message_iter_next(iter);
} else {
started = true;
return !empty;
return notEmpty;
}
}
public void Reset()
{
empty = dbus_message_iter_init(arguments.message.RawMessage, iter);
notEmpty = dbus_message_iter_init(arguments.message.RawMessage, iter);
started = false;
}
......
......@@ -36,12 +36,12 @@ namespace DBus.DBusType
IntPtr arrayIter = Marshal.AllocCoTaskMem(Arguments.DBusMessageIterSize);
int elementTypeCode;
bool empty = dbus_message_iter_init_array_iterator(iter, arrayIter, out elementTypeCode);
bool notEmpty = dbus_message_iter_init_array_iterator(iter, arrayIter, out elementTypeCode);
this.elementType = (Type) Arguments.DBusTypes[(char) elementTypeCode];
elements = new ArrayList();
if (!empty) {
if (notEmpty) {
do {
object [] pars = new Object[2];
pars[0] = arrayIter;
......
......@@ -31,11 +31,11 @@ namespace DBus.DBusType
{
IntPtr dictIter = Marshal.AllocCoTaskMem(Arguments.DBusMessageIterSize);
bool empty = dbus_message_iter_init_dict_iterator(iter, dictIter);
bool notEmpty = dbus_message_iter_init_dict_iterator(iter, dictIter);
this.val = new Hashtable();
if (!empty) {
if (notEmpty) {
do {
string key = dbus_message_iter_get_dict_key(dictIter);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment