summaryrefslogtreecommitdiff
path: root/gdb/python/py-framefilter.c
diff options
context:
space:
mode:
authorPhil Muldoon <pmuldoon@redhat.com>2013-08-29 10:06:18 +0000
committerPhil Muldoon <pmuldoon@redhat.com>2013-08-29 10:06:18 +0000
commit8f28f5226e56f018d5dec05522124f868ec86081 (patch)
treecd08845b151e258a1cf6dc08330cd547918e80e4 /gdb/python/py-framefilter.c
parentca422daf34ee4bbf46d281ebaff362ce3c780483 (diff)
2013-08-29 Phil Muldoon <pmuldoon@redhat.com>
* python/py-framefilter.c (py_print_frame): Remove usage of PyString_AsString. Use python_string_to_host_string instead. Refactor function to work with a string as a new allocation instead of a pointer. (py_print_frame): Ditto. * python/lib/gdb/frames.py (return_list): Cain iterators together instead of adding them as a list. (_sort_list): Call return_list, and remove duplicate code. (execute_frame_filters): Convert iterator to a list with list(). * python/lib/gdb/command/frame_filters.py (SetFrameFilterPriority._set_filter_priority): Convert priority attribute to an integer. * python/lib/gdb/FrameIterator.py (FrameIterator.next): Define wrapper function __next__. * python/lib/gdb/FrameDecorator.py: If basestring not defined, define as "str". 2013-08-29 Phil Muldoon <pmuldoon@redhat.com> * gdb.python/py-framefilter.py (FrameFilter.filter): Check itertools for imap attribute. Otherwise use map(). (ElidingIterator): Define wrapper function __next__. * gdb.python/py-framefilter-mi.exp: Do not use execfile, use exec (open (read ())) instead. * gdb.python/py-framefilter.exp: Ditto. * gdb.python/py-arch.exp: Update print based test to Python 3.x compliance. * gdb.python/py-frame.exp: Ditto. * gdb.python/py-type.exp: Ditto.
Diffstat (limited to 'gdb/python/py-framefilter.c')
-rw-r--r--gdb/python/py-framefilter.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/gdb/python/py-framefilter.c b/gdb/python/py-framefilter.c
index 5ac8e47701..871c2457ab 100644
--- a/gdb/python/py-framefilter.c
+++ b/gdb/python/py-framefilter.c
@@ -1170,13 +1170,17 @@ py_print_frame (PyObject *filter, int flags, enum py_frame_args args_type,
if (gdbpy_is_string (py_func))
{
- function = PyString_AsString (py_func);
+ char *function_to_free = NULL;
+
+ function = function_to_free =
+ python_string_to_host_string (py_func);
if (function == NULL)
{
Py_DECREF (py_func);
goto error;
}
+ make_cleanup (xfree, function_to_free);
}
else if (PyLong_Check (py_func))
{
@@ -1251,13 +1255,15 @@ py_print_frame (PyObject *filter, int flags, enum py_frame_args args_type,
{
if (py_fn != Py_None)
{
- char *filename = PyString_AsString (py_fn);
+ char *filename = python_string_to_host_string (py_fn);
if (filename == NULL)
{
Py_DECREF (py_fn);
goto error;
}
+
+ make_cleanup (xfree, filename);
TRY_CATCH (except, RETURN_MASK_ALL)
{
ui_out_wrap_hint (out, " ");