Returns a new reference to the arch_object associated as data with
GDBARCH. */
-PyObject *
+gdbpy_ref<>
gdbarch_to_arch_object (struct gdbarch *gdbarch)
{
PyObject *new_ref = arch_object_data.get (gdbarch);
/* new_ref could be NULL if creation failed. */
Py_XINCREF (new_ref);
- return new_ref;
+ return gdbpy_ref<> (new_ref);
}
/* Implementation of gdb.Architecture.name (self) -> String.
{
disasm_info_object *obj = (disasm_info_object *) self;
DISASMPY_DISASM_INFO_REQUIRE_VALID (obj);
- return gdbarch_to_arch_object (obj->gdbarch);
+ return gdbarch_to_arch_object (obj->gdbarch).release ();
}
/* Implement DisassembleInfo.progspace attribute. Return the
return gdbpy_handle_gdb_exception (nullptr, except);
}
- return gdbarch_to_arch_object (obj->gdbarch);
+ return gdbarch_to_arch_object (obj->gdbarch).release ();
}
/* Implementation of gdb.Frame.unwind_stop_reason (self) -> Integer.
INFPY_REQUIRE_VALID (inf);
- return gdbarch_to_arch_object (inf->inferior->arch ());
+ return gdbarch_to_arch_object (inf->inferior->arch ()).release ();
}
/* Implement repr() for gdb.Inferior. */
PENDING_FRAMEPY_REQUIRE_VALID (pending_frame);
- return gdbarch_to_arch_object (pending_frame->gdbarch);
+ return gdbarch_to_arch_object (pending_frame->gdbarch).release ();
}
/* Implementation of PendingFrame.level (self) -> Integer. */
PyObject *objfpy_get_xmethods (PyObject *, void *);
PyObject *gdbpy_lookup_objfile (PyObject *self, PyObject *args, PyObject *kw);
-PyObject *gdbarch_to_arch_object (struct gdbarch *gdbarch);
+gdbpy_ref<> gdbarch_to_arch_object (struct gdbarch *gdbarch);
PyObject *gdbpy_all_architecture_names (PyObject *self, PyObject *args);
PyObject *gdbpy_new_register_descriptor_iterator (struct gdbarch *gdbarch,
return {};
}
- gdbpy_ref<> gdbarch_arg (gdbarch_to_arch_object (gdbarch));
+ gdbpy_ref<> gdbarch_arg = gdbarch_to_arch_object (gdbarch);
if (gdbarch_arg == nullptr)
{
gdbpy_print_stack ();