aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/py-objfile.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2018-12-26 11:05:57 -0700
committerTom Tromey <tom@tromey.com>2018-12-27 10:50:43 -0700
commit075c55e0cc0a68eeab777027213c2f545618e844 (patch)
treed5ff42efac40742af8ce1401ef36ae43fc4df79d /gdb/python/py-objfile.c
parent293bf1a719e88e063e75ae467c5aec101b59fbf6 (diff)
downloadbinutils-075c55e0cc0a68eeab777027213c2f545618e844.zip
binutils-075c55e0cc0a68eeab777027213c2f545618e844.tar.gz
binutils-075c55e0cc0a68eeab777027213c2f545618e844.tar.bz2
Remove more calls to xfree from Python
This changes the Python code to remove some more calls to xfree, in favor of self-managing data structures. Tested on x86-64 Fedora 28. gdb/ChangeLog 2018-12-27 Tom Tromey <tom@tromey.com> * python/python.c (python_interactive_command): Use std::string. (gdbpy_parameter): Likewise. * python/py-utils.c (unicode_to_encoded_string): Update comment. * python/py-symtab.c (salpy_str): Use PyString_FromFormat. * python/py-record-btrace.c (recpy_bt_insn_data): Use byte_vector. * python/py-objfile.c (objfpy_get_build_id): Use unique_xmalloc_ptr. * python/py-inferior.c (infpy_read_memory): Use unique_xmalloc_ptr. * python/py-cmd.c (gdbpy_parse_command_name): Use std::string.
Diffstat (limited to 'gdb/python/py-objfile.c')
-rw-r--r--gdb/python/py-objfile.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/gdb/python/py-objfile.c b/gdb/python/py-objfile.c
index dc7f342..d15d5ec 100644
--- a/gdb/python/py-objfile.c
+++ b/gdb/python/py-objfile.c
@@ -143,12 +143,10 @@ objfpy_get_build_id (PyObject *self, void *closure)
if (build_id != NULL)
{
- char *hex_form = make_hex_string (build_id->data, build_id->size);
- PyObject *result;
+ gdb::unique_xmalloc_ptr<char> hex_form
+ (make_hex_string (build_id->data, build_id->size));
- result = host_string_to_python_string (hex_form).release ();
- xfree (hex_form);
- return result;
+ return host_string_to_python_string (hex_form.get ()).release ();
}
Py_RETURN_NONE;