summaryrefslogtreecommitdiff
path: root/gdb/python/py-disasm.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/python/py-disasm.c')
-rw-r--r--gdb/python/py-disasm.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/gdb/python/py-disasm.c b/gdb/python/py-disasm.c
index eeb16d8650c..9c281f6e089 100644
--- a/gdb/python/py-disasm.c
+++ b/gdb/python/py-disasm.c
@@ -608,6 +608,21 @@ gdbpy_disassembler::read_memory_func (bfd_vma memaddr, gdb_byte *buff,
return 0;
}
+/* Implement __str__ for the DisassemblerResult type. */
+
+static PyObject *
+disasmpy_result_str (PyObject *self)
+{
+ disasm_result_object *obj = (disasm_result_object *) self;
+
+ gdb_assert (obj->content != nullptr);
+ gdb_assert (obj->content->size () > 0);
+ gdb_assert (obj->length > 0);
+ return PyUnicode_Decode (obj->content->c_str (),
+ obj->content->size (),
+ host_charset (), nullptr);
+}
+
/* Implement DisassemblerResult.length attribute, return the length of the
disassembled instruction. */
@@ -624,14 +639,7 @@ disasmpy_result_length (PyObject *self, void *closure)
static PyObject *
disasmpy_result_string (PyObject *self, void *closure)
{
- disasm_result_object *obj = (disasm_result_object *) self;
-
- gdb_assert (obj->content != nullptr);
- gdb_assert (obj->content->size () > 0);
- gdb_assert (obj->length > 0);
- return PyUnicode_Decode (obj->content->c_str (),
- obj->content->size (),
- host_charset (), nullptr);
+ return disasmpy_result_str (self);
}
/* Implement DisassemblerResult.__init__. Takes two arguments, an
@@ -1147,7 +1155,7 @@ PyTypeObject disasm_result_object_type = {
0, /*tp_as_mapping*/
0, /*tp_hash */
0, /*tp_call*/
- 0, /*tp_str*/
+ disasmpy_result_str, /*tp_str*/
0, /*tp_getattro*/
0, /*tp_setattro*/
0, /*tp_as_buffer*/