]> git.proxmox.com Git - mirror_qemu.git/blobdiff - qobject/qbool.c
Merge tag 'pull-maintainer-may24-160524-2' of https://gitlab.com/stsquad/qemu into...
[mirror_qemu.git] / qobject / qbool.c
index a3d2afa827ff13b6511425e728d99a750af4f045..c7049c0c501b0eecd95a56177e6ae5695c95ba59 100644 (file)
  *
  */
 
+#include "qemu/osdep.h"
 #include "qapi/qmp/qbool.h"
-#include "qapi/qmp/qobject.h"
-#include "qemu-common.h"
-
-static void qbool_destroy_obj(QObject *obj);
-
-static const QType qbool_type = {
-    .code = QTYPE_QBOOL,
-    .destroy = qbool_destroy_obj,
-};
+#include "qobject-internal.h"
 
 /**
- * qbool_from_int(): Create a new QBool from an int
+ * qbool_from_bool(): Create a new QBool from a bool
  *
  * Return strong reference.
  */
-QBool *qbool_from_int(int value)
+QBool *qbool_from_bool(bool value)
 {
     QBool *qb;
 
     qb = g_malloc(sizeof(*qb));
+    qobject_init(QOBJECT(qb), QTYPE_QBOOL);
     qb->value = value;
-    QOBJECT_INIT(qb, &qbool_type);
 
     return qb;
 }
 
 /**
- * qbool_get_int(): Get the stored int
+ * qbool_get_bool(): Get the stored bool
  */
-int qbool_get_int(const QBool *qb)
+bool qbool_get_bool(const QBool *qb)
 {
     return qb->value;
 }
 
 /**
- * qobject_to_qbool(): Convert a QObject into a QBool
+ * qbool_is_equal(): Test whether the two QBools are equal
  */
-QBool *qobject_to_qbool(const QObject *obj)
+bool qbool_is_equal(const QObject *x, const QObject *y)
 {
-    if (qobject_type(obj) != QTYPE_QBOOL)
-        return NULL;
-
-    return container_of(obj, QBool, base);
+    return qobject_to(QBool, x)->value == qobject_to(QBool, y)->value;
 }
 
 /**
  * qbool_destroy_obj(): Free all memory allocated by a
  * QBool object
  */
-static void qbool_destroy_obj(QObject *obj)
+void qbool_destroy_obj(QObject *obj)
 {
     assert(obj != NULL);
-    g_free(qobject_to_qbool(obj));
+    g_free(qobject_to(QBool, obj));
+}
+
+void qbool_unref(QBool *q)
+{
+    qobject_unref(q);
 }