mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
python: Build correct python value for numerical property
With the lvm2app C API adding the ability to determine when a property is signed we can then use this information to construct the correct representation of the number for python which will maintain value and sign. Previously, we only represented the numbers in python as positive integers. Python long type exceeds the range for unsigned and signed integers, we just need to use the appropriate parsing code to build correctly. Python part of the fix for: https://bugzilla.redhat.com/show_bug.cgi?id=838257 Signed-off-by: Tony Asleson <tasleson@redhat.com>
This commit is contained in:
parent
91f737383c
commit
c21f1ba07a
@ -870,10 +870,15 @@ static PyObject *get_property(struct lvm_property_value *prop)
|
||||
if (!(pytuple = PyTuple_New(2)))
|
||||
return NULL;
|
||||
|
||||
if (prop->is_integer)
|
||||
PyTuple_SET_ITEM(pytuple, 0, Py_BuildValue("K", prop->value.integer));
|
||||
else
|
||||
if (prop->is_integer) {
|
||||
if (prop->is_signed) {
|
||||
PyTuple_SET_ITEM(pytuple, 0, Py_BuildValue("L", prop->value.signed_integer));
|
||||
} else {
|
||||
PyTuple_SET_ITEM(pytuple, 0, Py_BuildValue("K", prop->value.integer));
|
||||
}
|
||||
} else {
|
||||
PyTuple_SET_ITEM(pytuple, 0, PYSTRTYPE_FROMSTRING(prop->value.string));
|
||||
}
|
||||
|
||||
if (prop->is_settable)
|
||||
setable = Py_True;
|
||||
|
Loading…
Reference in New Issue
Block a user