aboutsummaryrefslogtreecommitdiff
path: root/gdb/python/py-prettyprint.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2016-11-12 11:48:48 -0700
committerTom Tromey <tom@tromey.com>2017-01-10 19:13:55 -0700
commit1eba63835ea23cbae6059c076db985a47e39ce24 (patch)
tree9fb10dbc2c7b84b8d23df9464f16f6f19ccfdcea /gdb/python/py-prettyprint.c
parentbde7b3e3a0d5e1f0b66730d692b21c98a8686f75 (diff)
downloadbinutils-1eba63835ea23cbae6059c076db985a47e39ce24.zip
binutils-1eba63835ea23cbae6059c076db985a47e39ce24.tar.gz
binutils-1eba63835ea23cbae6059c076db985a47e39ce24.tar.bz2
Change type of encoding argument to gdbpy_extract_lazy_string
This changes gdbpy_extract_lazy_string's "encoding" argument to be a unique_xmalloc_ptr. I chose this rather than std::string because it can sometimes be NULL. 2017-01-10 Tom Tromey <tom@tromey.com> * python/py-prettyprint.c (print_string_repr, print_children): Update. * python/py-lazy-string.c (gdbpy_extract_lazy_string): Change type of "encoding". * varobj.c (varobj_value_get_print_value): Update. * python/python-internal.h (gdbpy_extract_lazy_string): Update.
Diffstat (limited to 'gdb/python/py-prettyprint.c')
-rw-r--r--gdb/python/py-prettyprint.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/gdb/python/py-prettyprint.c b/gdb/python/py-prettyprint.c
index a4bdf87..fb3d9b1 100644
--- a/gdb/python/py-prettyprint.c
+++ b/gdb/python/py-prettyprint.c
@@ -301,15 +301,14 @@ print_string_repr (PyObject *printer, const char *hint,
CORE_ADDR addr;
long length;
struct type *type;
- char *encoding = NULL;
+ gdb::unique_xmalloc_ptr<char> encoding;
struct value_print_options local_opts = *options;
- make_cleanup (free_current_contents, &encoding);
gdbpy_extract_lazy_string (py_str, &addr, &type,
&length, &encoding);
local_opts.addressprint = 0;
- val_print_string (type, encoding, addr, (int) length,
+ val_print_string (type, encoding.get (), addr, (int) length,
stream, &local_opts);
}
else
@@ -610,14 +609,13 @@ print_children (PyObject *printer, const char *hint,
CORE_ADDR addr;
struct type *type;
long length;
- char *encoding = NULL;
+ gdb::unique_xmalloc_ptr<char> encoding;
struct value_print_options local_opts = *options;
- make_cleanup (free_current_contents, &encoding);
gdbpy_extract_lazy_string (py_v, &addr, &type, &length, &encoding);
local_opts.addressprint = 0;
- val_print_string (type, encoding, addr, (int) length, stream,
+ val_print_string (type, encoding.get (), addr, (int) length, stream,
&local_opts);
}
else if (gdbpy_is_string (py_v))