Use field_signed from Python MI commands
If an MI command written in Python includes a number in its output, currently that is simply emitted as a string. However, it's convenient for a later patch if these are emitted using field_signed. This does not make a difference to ordinary MI clients.
This commit is contained in:
parent
6aebb6e100
commit
d5ad08d77c
2 changed files with 17 additions and 0 deletions
|
@ -293,6 +293,21 @@ serialize_mi_result_1 (PyObject *result, const char *field_name)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (PyLong_Check (result))
|
||||
{
|
||||
int overflow = 0;
|
||||
gdb_py_longest val = gdb_py_long_as_long_and_overflow (result,
|
||||
&overflow);
|
||||
if (PyErr_Occurred () != nullptr)
|
||||
gdbpy_handle_exception ();
|
||||
if (overflow == 0)
|
||||
{
|
||||
uiout->field_signed (field_name, val);
|
||||
return;
|
||||
}
|
||||
/* Fall through to the string case on overflow. */
|
||||
}
|
||||
|
||||
gdb::unique_xmalloc_ptr<char> string (gdbpy_obj_to_string (result));
|
||||
if (string == nullptr)
|
||||
gdbpy_handle_exception ();
|
||||
|
|
|
@ -110,6 +110,7 @@
|
|||
typedef PY_LONG_LONG gdb_py_longest;
|
||||
typedef unsigned PY_LONG_LONG gdb_py_ulongest;
|
||||
#define gdb_py_long_as_ulongest PyLong_AsUnsignedLongLong
|
||||
#define gdb_py_long_as_long_and_overflow PyLong_AsLongLongAndOverflow
|
||||
|
||||
#else /* HAVE_LONG_LONG */
|
||||
|
||||
|
@ -118,6 +119,7 @@ typedef unsigned PY_LONG_LONG gdb_py_ulongest;
|
|||
typedef long gdb_py_longest;
|
||||
typedef unsigned long gdb_py_ulongest;
|
||||
#define gdb_py_long_as_ulongest PyLong_AsUnsignedLong
|
||||
#define gdb_py_long_as_long_and_overflow PyLong_AsLongAndOverflow
|
||||
|
||||
#endif /* HAVE_LONG_LONG */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue