qlit: make qlit_equal_qobject return a bool

Make it more obvious about the expected return values.

Backports commit d9eba57a6ad6d8fe8cf11bdd8345bbda66deb6d9 from qemu
This commit is contained in:
Marc-André Lureau 2018-03-07 17:16:30 -05:00 committed by Lioncash
parent c51622c4ce
commit 966cac10a7
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7
2 changed files with 10 additions and 10 deletions

View file

@ -44,6 +44,6 @@ struct QLitDictEntry {
#define QLIT_QLIST(val) \ #define QLIT_QLIST(val) \
{ .type = QTYPE_QLIST, .value.qlist = (val) } { .type = QTYPE_QLIST, .value.qlist = (val) }
int qlit_equal_qobject(QLitObject *lhs, QObject *rhs); bool qlit_equal_qobject(QLitObject *lhs, QObject *rhs);
#endif /* QLIT_H */ #endif /* QLIT_H */

View file

@ -25,19 +25,19 @@
typedef struct QListCompareHelper { typedef struct QListCompareHelper {
int index; int index;
QLitObject *objs; QLitObject *objs;
int result; bool result;
} QListCompareHelper; } QListCompareHelper;
static void compare_helper(QObject *obj, void *opaque) static void compare_helper(QObject *obj, void *opaque)
{ {
QListCompareHelper *helper = opaque; QListCompareHelper *helper = opaque;
if (helper->result == 0) { if (!helper->result) {
return; return;
} }
if (helper->objs[helper->index].type == QTYPE_NONE) { if (helper->objs[helper->index].type == QTYPE_NONE) {
helper->result = 0; helper->result = false;
return; return;
} }
@ -45,12 +45,12 @@ static void compare_helper(QObject *obj, void *opaque)
qlit_equal_qobject(&helper->objs[helper->index++], obj); qlit_equal_qobject(&helper->objs[helper->index++], obj);
} }
int qlit_equal_qobject(QLitObject *lhs, QObject *rhs) bool qlit_equal_qobject(QLitObject *lhs, QObject *rhs)
{ {
int64_t val; int64_t val;
if (!rhs || lhs->type != qobject_type(rhs)) { if (!rhs || lhs->type != qobject_type(rhs)) {
return 0; return false;
} }
switch (lhs->type) { switch (lhs->type) {
@ -68,18 +68,18 @@ int qlit_equal_qobject(QLitObject *lhs, QObject *rhs)
lhs->value.qdict[i].key); lhs->value.qdict[i].key);
if (!qlit_equal_qobject(&lhs->value.qdict[i].value, obj)) { if (!qlit_equal_qobject(&lhs->value.qdict[i].value, obj)) {
return 0; return false;
} }
} }
return 1; return true;
} }
case QTYPE_QLIST: { case QTYPE_QLIST: {
QListCompareHelper helper; QListCompareHelper helper;
helper.index = 0; helper.index = 0;
helper.objs = lhs->value.qlist; helper.objs = lhs->value.qlist;
helper.result = 1; helper.result = true;
qlist_iter(qobject_to_qlist(rhs), compare_helper, &helper); qlist_iter(qobject_to_qlist(rhs), compare_helper, &helper);
@ -89,5 +89,5 @@ int qlit_equal_qobject(QLitObject *lhs, QObject *rhs)
break; break;
} }
return 0; return false;
} }