+2016-11-08 Pedro Alves <palves@redhat.com>
+
+ * python/py-arch.c (archpy_disassemble): Use ui_file_as_string and
+ std::string.
+ * python/py-breakpoint.c (bppy_get_commands): Use
+ ui_file_as_string and std::string.
+ * python/py-frame.c (frapy_str): Likewise.
+ * python/py-type.c (typy_str): Likewise.
+ * python/py-unwind.c (unwind_infopy_str): Likewise.
+ * python/py-value.c (valpy_str): Likewise.
+
2016-11-08 Pedro Alves <palves@redhat.com>
* printcmd.c (eval_command): Use ui_file_as_string and
|| (end_obj == NULL && count_obj == NULL && pc == start);)
{
int insn_len = 0;
- char *as = NULL;
struct ui_file *memfile = mem_fileopen ();
PyObject *insn_dict = PyDict_New ();
}
END_CATCH
- as = ui_file_xstrdup (memfile, NULL);
+ std::string as = ui_file_as_string (memfile);
+
if (PyDict_SetItemString (insn_dict, "addr",
gdb_py_long_from_ulongest (pc))
|| PyDict_SetItemString (insn_dict, "asm",
- PyString_FromString (*as ? as : "<unknown>"))
+ PyString_FromString (!as.empty ()
+ ? as.c_str ()
+ : "<unknown>"))
|| PyDict_SetItemString (insn_dict, "length",
PyInt_FromLong (insn_len)))
{
Py_DECREF (result_list);
ui_file_delete (memfile);
- xfree (as);
return NULL;
}
pc += insn_len;
i++;
ui_file_delete (memfile);
- xfree (as);
}
return result_list;
struct breakpoint *bp = self_bp->bp;
long length;
struct ui_file *string_file;
- struct cleanup *chain;
PyObject *result;
- char *cmdstr;
+ struct cleanup *chain;
BPPY_REQUIRE_VALID (self_bp);
END_CATCH
ui_out_redirect (current_uiout, NULL);
- cmdstr = ui_file_xstrdup (string_file, &length);
- make_cleanup (xfree, cmdstr);
- result = host_string_to_python_string (cmdstr);
+ std::string cmdstr = ui_file_as_string (string_file);
+ result = host_string_to_python_string (cmdstr.c_str ());
do_cleanups (chain);
return result;
}
static PyObject *
frapy_str (PyObject *self)
{
- char *s;
PyObject *result;
struct ui_file *strfile;
strfile = mem_fileopen ();
fprint_frame_id (strfile, ((frame_object *) self)->frame_id);
- s = ui_file_xstrdup (strfile, NULL);
- result = PyString_FromString (s);
- xfree (s);
-
- return result;
+ std::string s = ui_file_as_string (strfile);
+ return PyString_FromString (s.c_str ());
}
/* Implementation of gdb.Frame.is_valid (self) -> Boolean.
static PyObject *
typy_str (PyObject *self)
{
- char *thetype = NULL;
- long length = 0;
+ std::string thetype;
PyObject *result;
TRY
LA_PRINT_TYPE (type_object_to_type (self), "", stb, -1, 0,
&type_print_raw_options);
- thetype = ui_file_xstrdup (stb, &length);
+ thetype = ui_file_as_string (stb);
do_cleanups (old_chain);
}
CATCH (except, RETURN_MASK_ALL)
{
- xfree (thetype);
GDB_PY_HANDLE_EXCEPTION (except);
}
END_CATCH
- result = PyUnicode_Decode (thetype, length, host_charset (), NULL);
- xfree (thetype);
+ result = PyUnicode_Decode (thetype.c_str (), thetype.length (),
+ host_charset (), NULL);
return result;
}
}
fprintf_unfiltered (strfile, ")");
}
- {
- char *s = ui_file_xstrdup (strfile, NULL);
- result = PyString_FromString (s);
- xfree (s);
- }
+ std::string s = ui_file_as_string (strfile);
+ result = PyString_FromString (s.c_str ());
ui_file_delete (strfile);
return result;
}
static PyObject *
valpy_str (PyObject *self)
{
- char *s = NULL;
+ std::string s;
PyObject *result;
struct value_print_options opts;
common_val_print (((value_object *) self)->value, stb, 0,
&opts, python_language);
- s = ui_file_xstrdup (stb, NULL);
+ s = ui_file_as_string (stb);
do_cleanups (old_chain);
}
}
END_CATCH
- result = PyUnicode_Decode (s, strlen (s), host_charset (), NULL);
- xfree (s);
+ result = PyUnicode_Decode (s.c_str (), s.length (), host_charset (), NULL);
return result;
}