Turn gdbpy_ref into a template
This turns gdbpy_ref into a template class, so that it can be used to wrap subclasses of PyObject. The default argument remains PyObject; and this necessitated renaming uses of "gdbpy_ref" to "gdbpy_ref<>". gdb/ChangeLog 2017-02-10 Tom Tromey <tom@tromey.com> * python/py-ref.h (gdbpy_ref_policy): Now a template. (gdbpy_ref): Now a template; allow subclasses of PyObject to be used. * python/py-arch.c, python/py-bpevent.c, python/py-breakpoint.c, python/py-cmd.c, python/py-continueevent.c, python/py-event.c, python/py-exitedevent.c, python/py-finishbreakpoint.c, python/py-framefilter.c, python/py-function.c, python/py-inferior.c, python/py-infevents.c, python/py-linetable.c, python/py-newobjfileevent.c, python/py-param.c, python/py-prettyprint.c, python/py-ref.h, python/py-signalevent.c, python/py-stopevent.c, python/py-symbol.c, python/py-threadevent.c, python/py-type.c, python/py-unwind.c, python/py-utils.c, python/py-value.c, python/py-varobj.c, python/py-xmethods.c, python/python.c, varobj.c: Change gdbpy_ref to gdbpy_ref<>.
This commit is contained in:
parent
d4b0bb186e
commit
7780f18678
30 changed files with 260 additions and 234 deletions
|
@ -38,14 +38,14 @@ static PyObject *
|
|||
convert_values_to_python (int argc, struct value **argv)
|
||||
{
|
||||
int i;
|
||||
gdbpy_ref result (PyTuple_New (argc));
|
||||
gdbpy_ref<> result (PyTuple_New (argc));
|
||||
|
||||
if (result == NULL)
|
||||
return NULL;
|
||||
|
||||
for (i = 0; i < argc; ++i)
|
||||
{
|
||||
gdbpy_ref elt (value_to_value_object (argv[i]));
|
||||
gdbpy_ref<> elt (value_to_value_object (argv[i]));
|
||||
if (elt == NULL)
|
||||
return NULL;
|
||||
PyTuple_SetItem (result.get (), i, elt.release ());
|
||||
|
@ -63,8 +63,8 @@ fnpy_call (struct gdbarch *gdbarch, const struct language_defn *language,
|
|||
be destroyed. */
|
||||
gdbpy_enter enter_py (gdbarch, language);
|
||||
struct value *value;
|
||||
gdbpy_ref result;
|
||||
gdbpy_ref args (convert_values_to_python (argc, argv));
|
||||
gdbpy_ref<> result;
|
||||
gdbpy_ref<> args (convert_values_to_python (argc, argv));
|
||||
|
||||
/* convert_values_to_python can return NULL on error. If we
|
||||
encounter this, do not call the function, but allow the Python ->
|
||||
|
@ -74,8 +74,8 @@ fnpy_call (struct gdbarch *gdbarch, const struct language_defn *language,
|
|||
|
||||
if (args != NULL)
|
||||
{
|
||||
gdbpy_ref callable (PyObject_GetAttrString ((PyObject *) cookie,
|
||||
"invoke"));
|
||||
gdbpy_ref<> callable (PyObject_GetAttrString ((PyObject *) cookie,
|
||||
"invoke"));
|
||||
if (callable == NULL)
|
||||
error (_("No method named 'invoke' in object."));
|
||||
|
||||
|
@ -159,7 +159,7 @@ fnpy_init (PyObject *self, PyObject *args, PyObject *kwds)
|
|||
|
||||
if (PyObject_HasAttrString (self, "__doc__"))
|
||||
{
|
||||
gdbpy_ref ds_obj (PyObject_GetAttrString (self, "__doc__"));
|
||||
gdbpy_ref<> ds_obj (PyObject_GetAttrString (self, "__doc__"));
|
||||
if (ds_obj != NULL)
|
||||
{
|
||||
if (gdbpy_is_string (ds_obj.get ()))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue