#include "disasm.h"
#include "python-internal.h"
-struct arch_object {
- PyObject_HEAD
+struct arch_object : public PyObject
+{
struct gdbarch *gdbarch;
};
#include "python-internal.h"
#include "objfiles.h"
-struct block_object {
- PyObject_HEAD
+struct block_object : public PyObject
+{
/* The GDB block structure that represents a frame's code block. */
const struct block *block;
/* The backing object file. There is no direct relationship in GDB
struct objfile *objfile;
};
-struct block_syms_iterator_object {
- PyObject_HEAD
+struct block_syms_iterator_object : public PyObject
+{
/* The block. */
const struct block *block;
/* The iterator for that block. */
that is an address that should be printed using a call to GDB's
internal print_address function. */
-struct disasm_addr_part_object
+struct disasm_addr_part_object : public PyObject
{
- PyObject_HEAD
-
/* The address to be formatted. */
bfd_vma address;
this type represents a small part of a disassembled instruction; a part
that is a piece of test along with an associated style. */
-struct disasm_text_part_object
+struct disasm_text_part_object : public PyObject
{
- PyObject_HEAD
-
/* The string that is this part. */
std::string *string;
/* Python instruction object. */
-struct py_insn_obj {
- PyObject_HEAD
-};
+struct py_insn_obj: public PyObject
+{};
/* Getter function for gdb.Instruction attributes. */
#include "valprint.h"
#include "language.h"
-struct lazy_string_object {
- PyObject_HEAD
-
+struct lazy_string_object : public PyObject
+{
/* Holds the address of the lazy string. */
CORE_ADDR address;
#include "python-internal.h"
-struct linetable_entry_object {
- PyObject_HEAD
+struct linetable_entry_object : public PyObject
+{
/* The line table source line. */
int line;
/* The pc associated with the source line. */
extern PyTypeObject linetable_entry_object_type;
-struct linetable_object {
- PyObject_HEAD
+struct linetable_object : public PyObject
+{
/* The symtab python object. We store the Python object here as the
underlying symtab can become invalid, and we have to run validity
checks on it. */
extern PyTypeObject linetable_object_type;
-struct ltpy_iterator_object {
- PyObject_HEAD
+struct ltpy_iterator_object : public PyObject
+{
/* The current entry in the line table for the iterator */
int current_index;
/* Pointer back to the original source line table object. Needed to
};
/* A GDB parameter. */
-struct parmpy_object
+struct parmpy_object : public PyObject
{
- PyObject_HEAD
-
/* The type of the parameter. */
enum var_types type;
/* A ValuePrinter is just a "tag", so it has no state other than that
required by Python. */
-struct printer_object
-{
- PyObject_HEAD
-};
+struct printer_object : public PyObject
+{};
/* The ValuePrinter type object. */
PyTypeObject printer_object_type =
/* Python object for btrace record lists. */
-struct btpy_list_object {
- PyObject_HEAD
-
+struct btpy_list_object : public PyObject
+{
/* The thread this list belongs to. */
thread_info *thread;
};
/* Python RecordGap object. */
-struct recpy_gap_object
+struct recpy_gap_object : public PyObject
{
- PyObject_HEAD
-
/* Reason code. */
int reason_code;
#include "record.h"
/* Python Record object. */
-struct recpy_record_object
+struct recpy_record_object : public PyObject
{
- PyObject_HEAD
-
/* The thread this object refers to. */
thread_info *thread;
/* Python recorded element object. This is generic enough to represent
recorded instructions as well as recorded function call segments, hence the
generic name. */
-struct recpy_element_object
+struct recpy_element_object : public PyObject
{
- PyObject_HEAD
-
/* The thread this object refers to. */
thread_info *thread;
gdbpy_register_object_data;
/* Structure for iterator over register descriptors. */
-struct register_descriptor_iterator_object {
- PyObject_HEAD
-
+struct register_descriptor_iterator_object : public PyObject
+{
/* The register group that the user is iterating over. This will never
be NULL. */
const struct reggroup *reggroup;
extern PyTypeObject register_descriptor_object_type;
/* Structure for iterator over register groups. */
-struct reggroup_iterator_object {
- PyObject_HEAD
-
+struct reggroup_iterator_object : public PyObject
+{
/* The index into GROUPS for the next group to return. */
std::vector<const reggroup *>::size_type index;
};
/* A style. */
-struct style_object
+struct style_object : public PyObject
{
- PyObject_HEAD
-
/* Underlying style, only valid when STYLE_NAME is NULL. */
ui_file_style style;
extern PyTypeObject field_object_type;
/* A type iterator object. */
-struct typy_iterator_object {
- PyObject_HEAD
+struct typy_iterator_object : public PyObject
+{
/* The current field index. */
int field;
/* What to return. */
} \
} while (0)
-struct pending_frame_object
+struct pending_frame_object : public PyObject
{
- PyObject_HEAD
-
/* Frame we are unwinding. */
frame_info_ptr frame_info;
/* The data we keep for the PyUnwindInfo: pending_frame, saved registers
and frame ID. */
-struct unwind_info_object
+struct unwind_info_object : public PyObject
{
- PyObject_HEAD
-
/* gdb.PendingFrame for the frame we are unwinding. */
PyObject *pending_frame;
#define builtin_type_pybool \
language_bool_type (current_language, gdbpy_enter::get_gdbarch ())
-struct value_object {
- PyObject_HEAD
+struct value_object : public PyObject
+{
struct value_object *next;
struct value_object *prev;
struct value *value;