]> git.draconx.ca Git - upkg.git/blobdiff - src/uobject/uobject.c
uobject: Add support for decoding boolean properties.
[upkg.git] / src / uobject / uobject.c
index 1a3d740f9e4ab7a786e049bd0111d1978d4e1c0f..fa93ec0f420bb6af18b9845dcd83ae811a21ec2c 100644 (file)
@@ -174,7 +174,7 @@ decode_prop_header(struct upkg *upkg, struct prop_head *head,
        }
 
        rc = decode_tag_size(&head->size, tag_size, buf+len, n-len);
-       if (head->size == 0)
+       if (rc == 0 && head->size == 0)
                return 0;
        len += rc;
 
@@ -239,6 +239,11 @@ static unsigned long deserialize_property(UObject *uo, struct prop_head *head)
                g_value_set_ulong(&val, unpack_32_le(priv->buf+len));
                g_object_set_property(G_OBJECT(uo), head->prop_name, &val);
                break;
+       case PROPERTY_BOOLEAN:
+               g_value_init(&val, G_TYPE_BOOLEAN);
+               g_value_set_boolean(&val, head->tag_msb);
+               g_object_set_property(G_OBJECT(uo), head->prop_name, &val);
+               break;
        case PROPERTY_OBJECT:
                rc = decode_object_property(uo, &val, len);
                if (rc != 0)