[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 09/17] qnum: fix get_int() with values > INT64_MAX
From: |
Marc-André Lureau |
Subject: |
[Qemu-devel] [PATCH 09/17] qnum: fix get_int() with values > INT64_MAX |
Date: |
Tue, 9 May 2017 20:35:51 +0300 |
Now that the visitor has been switch to use qnum_uint, fix the bad
get_int() to use get_uint() instead. Remove compatibility code.
Signed-off-by: Marc-André Lureau <address@hidden>
---
hw/i386/acpi-build.c | 2 +-
qobject/qnum.c | 4 ++--
tests/check-qnum.c | 9 ++++-----
3 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
index ec3ae7fa85..767da5d78e 100644
--- a/hw/i386/acpi-build.c
+++ b/hw/i386/acpi-build.c
@@ -2585,7 +2585,7 @@ static bool acpi_get_mcfg(AcpiMcfgInfo *mcfg)
if (!o) {
return false;
}
- mcfg->mcfg_base = qnum_get_int(qobject_to_qnum(o), &error_abort);
+ mcfg->mcfg_base = qnum_get_uint(qobject_to_qnum(o), &error_abort);
qobject_decref(o);
o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_SIZE, NULL);
diff --git a/qobject/qnum.c b/qobject/qnum.c
index 2f87952db8..be6307accf 100644
--- a/qobject/qnum.c
+++ b/qobject/qnum.c
@@ -76,8 +76,8 @@ int64_t qnum_get_int(const QNum *qn, Error **errp)
return qn->u.i64;
case QNUM_U64:
if (qn->u.u64 > INT64_MAX) {
- /* temporarily accepts to cast to i64 until visitor is switched */
- error_report("The number is too large, use qnum_get_uint()");
+ error_setg(errp, "The number is too large, use qnum_get_uint()");
+ return 0;
}
return qn->u.u64;
case QNUM_DOUBLE:
diff --git a/tests/check-qnum.c b/tests/check-qnum.c
index 9a22af3d0e..8199546f99 100644
--- a/tests/check-qnum.c
+++ b/tests/check-qnum.c
@@ -107,11 +107,10 @@ static void qnum_get_uint_test(void)
error_free_or_abort(&err);
QDECREF(qn);
- /* temporarily disabled until visitor is switched */
- /* qn = qnum_from_uint(-1ULL); */
- /* qnum_get_int(qn, &err); */
- /* error_free_or_abort(&err); */
- /* QDECREF(qn); */
+ qn = qnum_from_uint(-1ULL);
+ qnum_get_int(qn, &err);
+ error_free_or_abort(&err);
+ QDECREF(qn);
/* invalid case */
qn = qnum_from_double(0.42);
--
2.13.0.rc1.16.gd80b50c3f
[Qemu-devel] [PATCH 08/17] qapi: update the qobject visitor to use QUInt, Marc-André Lureau, 2017/05/09
[Qemu-devel] [PATCH 09/17] qnum: fix get_int() with values > INT64_MAX,
Marc-André Lureau <=
[Qemu-devel] [PATCH 10/17] object: add uint property setter/getter, Marc-André Lureau, 2017/05/09
[Qemu-devel] [PATCH 11/17] object: use more specific property type names, Marc-André Lureau, 2017/05/09
[Qemu-devel] [PATCH 12/17] qdev: use int and uint properties as appropriate, Marc-André Lureau, 2017/05/09
[Qemu-devel] [PATCH 13/17] qdev: use appropriate getter/setters type, Marc-André Lureau, 2017/05/09