summaryrefslogtreecommitdiff
path: root/qdict.c
diff options
context:
space:
mode:
authorLuiz Capitulino <lcapitulino@redhat.com>2010-06-07 17:25:04 -0300
committerLuiz Capitulino <lcapitulino@redhat.com>2010-07-01 14:27:13 -0300
commit0298d366c21334a4065cf7965ab7234c06e86acc (patch)
treedafb9c4c73400baa5a5532e8e2fb683850c3b2d8 /qdict.c
parentf8dca426546b969b61ce9186b3321ddc9b28671a (diff)
downloadqemu-0298d366c21334a4065cf7965ab7234c06e86acc.tar.gz
qemu-0298d366c21334a4065cf7965ab7234c06e86acc.tar.bz2
qemu-0298d366c21334a4065cf7965ab7234c06e86acc.zip
QDict: Introduce qdict_get_try_bool()
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Diffstat (limited to 'qdict.c')
-rw-r--r--qdict.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/qdict.c b/qdict.c
index a28a0a9f97..dee0fb447c 100644
--- a/qdict.c
+++ b/qdict.c
@@ -308,6 +308,24 @@ int64_t qdict_get_try_int(const QDict *qdict, const char *key,
}
/**
+ * qdict_get_try_bool(): Try to get a bool mapped by 'key'
+ *
+ * Return bool mapped by 'key', if it is not present in the
+ * dictionary or if the stored object is not of QBool type
+ * 'def_value' will be returned.
+ */
+int qdict_get_try_bool(const QDict *qdict, const char *key, int def_value)
+{
+ QObject *obj;
+
+ obj = qdict_get(qdict, key);
+ if (!obj || qobject_type(obj) != QTYPE_QBOOL)
+ return def_value;
+
+ return qbool_get_int(qobject_to_qbool(obj));
+}
+
+/**
* qdict_get_try_str(): Try to get a pointer to the stored string
* mapped by 'key'
*