Remove redundant typedefs

I was inspired by this patch of Simon's:

https://sourceware.org/pipermail/gdb-patches/2020-November/173522.html

... to remove other typedefs that are no longer necessary now that gdb
uses C++.

I didn't remove absolutely every one -- I didn't touch the tdep files.
However, I removed many of them.  In some cases, I removed an existing
different struct tag.

2020-12-04  Tom Tromey  <tromey@adacore.com>

	* linespec.c (struct linespec_token): Rename; remove typedef.
	* guile/scm-block.c (struct block_smob): Remove typedef.
	(struct block_syms_progress_smob): Likewise.
	* guile/scm-symbol.c (struct symbol_smob): Remove typedef.
	* guile/scm-symtab.c (symtab_smob): Remove typedef.
	(struct sal_smob): Remove typedef.
	* guile/scm-param.c (struct param_smob): Remove typedef.
	* guile/scm-progspace.c (struct pspace_smob): Rename.
	* guile/scm-objfile.c (struct objfile_smob): Rename.
	* guile/scm-iterator.c (struct iterator_smob): Rename.
	* guile/scm-frame.c (struct frame_smob): Rename.
	* guile/scm-arch.c (struct arch_smob): Rename.
	* guile/scm-type.c (struct field_smob): Remove typedef.
	(struct type_smob): Rename.
	* guile/scm-cmd.c (struct command_smob): Remove typedef.
	* guile/scm-ports.c (struct ioscm_memory_port): Remove typedef.
	* guile/scm-value.c (struct value_smob): Remove typedef.
	* guile/scm-lazy-string.c (lazy_string_smob): Remove typedef.
	* guile/guile-internal.h (struct scheme_variable)
	(struct scheme_function, struct scheme_integer_constant)
	(struct gdb_smob, struct chained_gdb_smob)
	(struct eqable_gdb_smob, arch_smob, frame_smob, iterator_smob)
	(objfile_smob, pspace_smob, type_smob): Remove typedef.
	* guile/scm-pretty-print.c (pretty_printer_smob): Remove typedef.
	(struct pretty_printer_worker_smob): Remove typedef.
	* guile/scm-exception.c (struct exception_smob): Remove typedef.
	* python/py-block.c (struct block_object): Remove typedef.
	(block_syms_iterator_object): Update.
	(set_block): Update.
	(block_syms_iterator_object): Remove typedef.
	* python/py-inferior.c (struct membuf_object): Remove typedef.
	* python/py-symtab.c (struct symtab_object): Remove typedef.
	(set_symtab): Update.
	(sal_object): Remove typedef.
	(set_sal): Update.
	* python/py-frame.c (frame_object): Remove typedef.
	* python/py-record-btrace.c (struct btpy_list_object): Remove
	typedef.
	* python/py-arch.c (struct arch_object): Remove typedef.
	* python/py-linetable.c (struct linetable_entry_object)
	(linetable_object, struct ltpy_iterator_object): Remove typedef.
	* python/py-events.h (eventregistry_object): Remove typedef.
	(struct events_object): Remove typedef.
	* python/python-internal.h (gdbpy_breakpoint_object): Remove
	typedef.
	(thread_object): Remove typedef.
	* python/py-progspace.c (pspace_object): Remove typedef.
	* python/py-value.c (struct value_object): Remove typedef.
	* python/py-record.h (recpy_record_object): Remove typedef.
	(struct recpy_element_object): Remove typedef.
	* python/py-lazy-string.c (lazy_string_object): Remove typedef.
	* python/py-objfile.c (objfile_object): Remove typedef.
	* python/py-cmd.c (struct cmdpy_object): Remove typedef.
	* python/py-type.c (type_object): Remove typedef.
	(typy_iterator_object): Update.
	(set_type): Update.
	(field_object): Remove typedef.
	(typy_iterator_object): Remove typedef.
	* python/py-registers.c (register_descriptor_iterator_object):
	Remove typedef.
	(struct register_descriptor_object)
	(struct reggroup_iterator_object, struct reggroup_object): Remove
	typedef.
	* python/py-record.c (recpy_gap_object): Remove typedef.
	* python/py-symbol.c (symbol_object): Remove typedef.
	(set_symbol): Update.
	* python/py-event.h (event_object): Remove typedef.
	* python/py-param.c (parmpy_object): Remove typedef.
	* python/py-instruction.c (struct py_insn_obj): Remove typedef.
	* python/py-unwind.c (struct pending_frame_object): Remove typedef.
	(unwind_info_object, struct cached_frame_info): Likewise.
This commit is contained in:
Tom Tromey
2020-12-04 13:09:43 -07:00
parent e633b1172a
commit f99b517750
42 changed files with 225 additions and 162 deletions

View File

@@ -1,3 +1,77 @@
2020-12-04 Tom Tromey <tromey@adacore.com>
* linespec.c (struct linespec_token): Rename; remove typedef.
* guile/scm-block.c (struct block_smob): Remove typedef.
(struct block_syms_progress_smob): Likewise.
* guile/scm-symbol.c (struct symbol_smob): Remove typedef.
* guile/scm-symtab.c (symtab_smob): Remove typedef.
(struct sal_smob): Remove typedef.
* guile/scm-param.c (struct param_smob): Remove typedef.
* guile/scm-progspace.c (struct pspace_smob): Rename.
* guile/scm-objfile.c (struct objfile_smob): Rename.
* guile/scm-iterator.c (struct iterator_smob): Rename.
* guile/scm-frame.c (struct frame_smob): Rename.
* guile/scm-arch.c (struct arch_smob): Rename.
* guile/scm-type.c (struct field_smob): Remove typedef.
(struct type_smob): Rename.
* guile/scm-cmd.c (struct command_smob): Remove typedef.
* guile/scm-ports.c (struct ioscm_memory_port): Remove typedef.
* guile/scm-value.c (struct value_smob): Remove typedef.
* guile/scm-lazy-string.c (lazy_string_smob): Remove typedef.
* guile/guile-internal.h (struct scheme_variable)
(struct scheme_function, struct scheme_integer_constant)
(struct gdb_smob, struct chained_gdb_smob)
(struct eqable_gdb_smob, arch_smob, frame_smob, iterator_smob)
(objfile_smob, pspace_smob, type_smob): Remove typedef.
* guile/scm-pretty-print.c (pretty_printer_smob): Remove typedef.
(struct pretty_printer_worker_smob): Remove typedef.
* guile/scm-exception.c (struct exception_smob): Remove typedef.
* python/py-block.c (struct block_object): Remove typedef.
(block_syms_iterator_object): Update.
(set_block): Update.
(block_syms_iterator_object): Remove typedef.
* python/py-inferior.c (struct membuf_object): Remove typedef.
* python/py-symtab.c (struct symtab_object): Remove typedef.
(set_symtab): Update.
(sal_object): Remove typedef.
(set_sal): Update.
* python/py-frame.c (frame_object): Remove typedef.
* python/py-record-btrace.c (struct btpy_list_object): Remove
typedef.
* python/py-arch.c (struct arch_object): Remove typedef.
* python/py-linetable.c (struct linetable_entry_object)
(linetable_object, struct ltpy_iterator_object): Remove typedef.
* python/py-events.h (eventregistry_object): Remove typedef.
(struct events_object): Remove typedef.
* python/python-internal.h (gdbpy_breakpoint_object): Remove
typedef.
(thread_object): Remove typedef.
* python/py-progspace.c (pspace_object): Remove typedef.
* python/py-value.c (struct value_object): Remove typedef.
* python/py-record.h (recpy_record_object): Remove typedef.
(struct recpy_element_object): Remove typedef.
* python/py-lazy-string.c (lazy_string_object): Remove typedef.
* python/py-objfile.c (objfile_object): Remove typedef.
* python/py-cmd.c (struct cmdpy_object): Remove typedef.
* python/py-type.c (type_object): Remove typedef.
(typy_iterator_object): Update.
(set_type): Update.
(field_object): Remove typedef.
(typy_iterator_object): Remove typedef.
* python/py-registers.c (register_descriptor_iterator_object):
Remove typedef.
(struct register_descriptor_object)
(struct reggroup_iterator_object, struct reggroup_object): Remove
typedef.
* python/py-record.c (recpy_gap_object): Remove typedef.
* python/py-symbol.c (symbol_object): Remove typedef.
(set_symbol): Update.
* python/py-event.h (event_object): Remove typedef.
* python/py-param.c (parmpy_object): Remove typedef.
* python/py-instruction.c (struct py_insn_obj): Remove typedef.
* python/py-unwind.c (struct pending_frame_object): Remove typedef.
(unwind_info_object, struct cached_frame_info): Likewise.
2020-12-04 Tom Tromey <tromey@adacore.com> 2020-12-04 Tom Tromey <tromey@adacore.com>
* value.c (value_internal_function_name): Make return type const. * value.c (value_internal_function_name): Make return type const.

View File

@@ -40,12 +40,12 @@ typedef int excp_matcher_func (SCM key);
/* Scheme variables to define during initialization. */ /* Scheme variables to define during initialization. */
typedef struct struct scheme_variable
{ {
const char *name; const char *name;
SCM value; SCM value;
const char *doc_string; const char *doc_string;
} scheme_variable; };
/* End of scheme_variable table mark. */ /* End of scheme_variable table mark. */
@@ -89,7 +89,7 @@ as_a_scm_t_subr (SCM (*func) (SCM, SCM, SCM))
/* Scheme functions to define during initialization. */ /* Scheme functions to define during initialization. */
typedef struct struct scheme_function
{ {
const char *name; const char *name;
int required; int required;
@@ -97,7 +97,7 @@ typedef struct
int rest; int rest;
scm_t_subr func; scm_t_subr func;
const char *doc_string; const char *doc_string;
} scheme_function; };
/* End of scheme_function table mark. */ /* End of scheme_function table mark. */
@@ -105,11 +105,11 @@ typedef struct
/* Useful for defining a set of constants. */ /* Useful for defining a set of constants. */
typedef struct struct scheme_integer_constant
{ {
const char *name; const char *name;
int value; int value;
} scheme_integer_constant; };
#define END_INTEGER_CONSTANTS { NULL, 0 } #define END_INTEGER_CONSTANTS { NULL, 0 }
@@ -239,20 +239,20 @@ extern int gdbscm_guile_version_is_at_least (int major, int minor, int micro);
#define GDB_SMOB_HEAD \ #define GDB_SMOB_HEAD \
int empty_base_class; int empty_base_class;
typedef struct struct gdb_smob
{ {
GDB_SMOB_HEAD GDB_SMOB_HEAD
} gdb_smob; };
typedef struct _chained_gdb_smob struct chained_gdb_smob
{ {
GDB_SMOB_HEAD GDB_SMOB_HEAD
struct _chained_gdb_smob *prev; chained_gdb_smob *prev;
struct _chained_gdb_smob *next; chained_gdb_smob *next;
} chained_gdb_smob; };
typedef struct _eqable_gdb_smob struct eqable_gdb_smob
{ {
GDB_SMOB_HEAD GDB_SMOB_HEAD
@@ -267,7 +267,7 @@ typedef struct _eqable_gdb_smob
we need to invalidate the objects: we can do that using the same hashtab we need to invalidate the objects: we can do that using the same hashtab
used to record the smob for eq-ability. */ used to record the smob for eq-ability. */
SCM containing_scm; SCM containing_scm;
} eqable_gdb_smob; };
#undef GDB_SMOB_HEAD #undef GDB_SMOB_HEAD
@@ -416,7 +416,7 @@ extern void gdbscm_enter_repl (void);
/* scm-arch.c */ /* scm-arch.c */
typedef struct _arch_smob arch_smob; struct arch_smob;
extern struct gdbarch *arscm_get_gdbarch (arch_smob *a_smob); extern struct gdbarch *arscm_get_gdbarch (arch_smob *a_smob);
@@ -447,7 +447,7 @@ extern char *gdbscm_canonicalize_command_name (const char *name,
/* scm-frame.c */ /* scm-frame.c */
typedef struct _frame_smob frame_smob; struct frame_smob;
extern int frscm_is_frame (SCM scm); extern int frscm_is_frame (SCM scm);
@@ -458,7 +458,7 @@ extern struct frame_info *frscm_frame_smob_to_frame (frame_smob *);
/* scm-iterator.c */ /* scm-iterator.c */
typedef struct _iterator_smob iterator_smob; struct iterator_smob;
extern SCM itscm_iterator_smob_object (iterator_smob *i_smob); extern SCM itscm_iterator_smob_object (iterator_smob *i_smob);
@@ -500,7 +500,7 @@ extern void lsscm_val_print_lazy_string
/* scm-objfile.c */ /* scm-objfile.c */
typedef struct _objfile_smob objfile_smob; struct objfile_smob;
extern SCM ofscm_objfile_smob_pretty_printers (objfile_smob *o_smob); extern SCM ofscm_objfile_smob_pretty_printers (objfile_smob *o_smob);
@@ -510,7 +510,7 @@ extern SCM ofscm_scm_from_objfile (struct objfile *objfile);
/* scm-progspace.c */ /* scm-progspace.c */
typedef struct _pspace_smob pspace_smob; struct pspace_smob;
extern SCM psscm_pspace_smob_pretty_printers (const pspace_smob *); extern SCM psscm_pspace_smob_pretty_printers (const pspace_smob *);
@@ -557,7 +557,7 @@ extern SCM stscm_scm_from_sal (struct symtab_and_line sal);
/* scm-type.c */ /* scm-type.c */
typedef struct _type_smob type_smob; struct type_smob;
extern int tyscm_is_type (SCM scm); extern int tyscm_is_type (SCM scm);

View File

@@ -26,10 +26,9 @@
#include "arch-utils.h" #include "arch-utils.h"
#include "guile-internal.h" #include "guile-internal.h"
/* The <gdb:arch> smob. /* The <gdb:arch> smob. */
The typedef for this struct is in guile-internal.h. */
struct _arch_smob struct arch_smob
{ {
/* This always appears first. */ /* This always appears first. */
gdb_smob base; gdb_smob base;

View File

@@ -30,7 +30,7 @@
/* A smob describing a gdb block. */ /* A smob describing a gdb block. */
typedef struct _block_smob struct block_smob
{ {
/* This always appears first. /* This always appears first.
We want blocks to be eq?-able. And we need to be able to invalidate We want blocks to be eq?-able. And we need to be able to invalidate
@@ -44,7 +44,7 @@ typedef struct _block_smob
between a block and an object file. When a block is created also between a block and an object file. When a block is created also
store a pointer to the object file for later use. */ store a pointer to the object file for later use. */
struct objfile *objfile; struct objfile *objfile;
} block_smob; };
/* To iterate over block symbols from Scheme we need to store /* To iterate over block symbols from Scheme we need to store
struct block_iterator somewhere. This is stored in the "progress" field struct block_iterator somewhere. This is stored in the "progress" field
@@ -54,7 +54,7 @@ typedef struct _block_smob
Remember: While iterating over block symbols, you must continually check Remember: While iterating over block symbols, you must continually check
whether the block is still valid. */ whether the block is still valid. */
typedef struct struct block_syms_progress_smob
{ {
/* This always appears first. */ /* This always appears first. */
gdb_smob base; gdb_smob base;
@@ -64,7 +64,7 @@ typedef struct
/* Has the iterator been initialized flag. */ /* Has the iterator been initialized flag. */
int initialized_p; int initialized_p;
} block_syms_progress_smob; };
static const char block_smob_name[] = "gdb:block"; static const char block_smob_name[] = "gdb:block";
static const char block_syms_progress_smob_name[] = "gdb:block-symbols-iterator"; static const char block_syms_progress_smob_name[] = "gdb:block-symbols-iterator";

View File

@@ -37,7 +37,7 @@
any side-effects. This means that the smob needs to store everything any side-effects. This means that the smob needs to store everything
that was passed to make-command. */ that was passed to make-command. */
typedef struct _command_smob struct command_smob
{ {
/* This always appears first. */ /* This always appears first. */
gdb_smob base; gdb_smob base;
@@ -85,7 +85,7 @@ typedef struct _command_smob
the object since a reference to it comes from non-gc-managed space the object since a reference to it comes from non-gc-managed space
(the command context pointer). */ (the command context pointer). */
SCM containing_scm; SCM containing_scm;
} command_smob; };
static const char command_smob_name[] = "gdb:command"; static const char command_smob_name[] = "gdb:command";

View File

@@ -37,7 +37,7 @@
One important invariant is that <gdb:exception> smobs are never a valid One important invariant is that <gdb:exception> smobs are never a valid
result of a function, other than to signify an exception occurred. */ result of a function, other than to signify an exception occurred. */
typedef struct struct exception_smob
{ {
/* This always appears first. */ /* This always appears first. */
gdb_smob base; gdb_smob base;
@@ -45,7 +45,7 @@ typedef struct
/* The key and args parameters to "throw". */ /* The key and args parameters to "throw". */
SCM key; SCM key;
SCM args; SCM args;
} exception_smob; };
static const char exception_smob_name[] = "gdb:exception"; static const char exception_smob_name[] = "gdb:exception";

View File

@@ -32,10 +32,9 @@
#include "value.h" #include "value.h"
#include "guile-internal.h" #include "guile-internal.h"
/* The <gdb:frame> smob. /* The <gdb:frame> smob. */
The typedef for this struct is in guile-internal.h. */
struct _frame_smob struct frame_smob
{ {
/* This always appears first. */ /* This always appears first. */
eqable_gdb_smob base; eqable_gdb_smob base;

View File

@@ -55,10 +55,9 @@
/* A smob for iterating over something. /* A smob for iterating over something.
Typically this is used when computing a list of everything is Typically this is used when computing a list of everything is
too expensive. too expensive. */
The typedef for this struct is in guile-internal.h. */
struct _iterator_smob struct iterator_smob
{ {
/* This always appears first. */ /* This always appears first. */
gdb_smob base; gdb_smob base;

View File

@@ -29,7 +29,7 @@
/* The <gdb:lazy-string> smob. */ /* The <gdb:lazy-string> smob. */
typedef struct struct lazy_string_smob
{ {
/* This always appears first. */ /* This always appears first. */
gdb_smob base; gdb_smob base;
@@ -58,7 +58,7 @@ typedef struct
This is recorded as an SCM object so that we take advantage of support for This is recorded as an SCM object so that we take advantage of support for
preserving the type should its owning objfile go away. */ preserving the type should its owning objfile go away. */
SCM type; SCM type;
} lazy_string_smob; };
static const char lazy_string_smob_name[] = "gdb:lazy-string"; static const char lazy_string_smob_name[] = "gdb:lazy-string";

View File

@@ -25,10 +25,9 @@
#include "language.h" #include "language.h"
#include "guile-internal.h" #include "guile-internal.h"
/* The <gdb:objfile> smob. /* The <gdb:objfile> smob. */
The typedef for this struct is in guile-internal.h. */
struct _objfile_smob struct objfile_smob
{ {
/* This always appears first. */ /* This always appears first. */
gdb_smob base; gdb_smob base;

View File

@@ -62,7 +62,7 @@ union pascm_variable
N.B. There is no free function for this smob. N.B. There is no free function for this smob.
All objects pointed to by this smob must live in GC space. */ All objects pointed to by this smob must live in GC space. */
typedef struct _param_smob struct param_smob
{ {
/* This always appears first. */ /* This always appears first. */
gdb_smob base; gdb_smob base;
@@ -112,7 +112,7 @@ typedef struct _param_smob
protect/unprotect the object since a reference to it comes from protect/unprotect the object since a reference to it comes from
non-gc-managed space (the command context pointer). */ non-gc-managed space (the command context pointer). */
SCM containing_scm; SCM containing_scm;
} param_smob; };
static const char param_smob_name[] = "gdb:parameter"; static const char param_smob_name[] = "gdb:parameter";

View File

@@ -59,7 +59,7 @@ private:
/* Data for a memory port. */ /* Data for a memory port. */
typedef struct struct ioscm_memory_port
{ {
/* Bounds of memory range this port is allowed to access: [start, end). /* Bounds of memory range this port is allowed to access: [start, end).
This means that 0xff..ff is not accessible. I can live with that. */ This means that 0xff..ff is not accessible. I can live with that. */
@@ -80,7 +80,7 @@ typedef struct
the user to specify these values to help get something similar. */ the user to specify these values to help get something similar. */
unsigned read_buf_size, write_buf_size; unsigned read_buf_size, write_buf_size;
#endif #endif
} ioscm_memory_port; };
/* Copies of the original system input/output/error ports. /* Copies of the original system input/output/error ports.
These are recorded for debugging purposes. */ These are recorded for debugging purposes. */

View File

@@ -59,7 +59,7 @@ enum display_hint
/* The <gdb:pretty-printer> smob. */ /* The <gdb:pretty-printer> smob. */
typedef struct struct pretty_printer_smob
{ {
/* This must appear first. */ /* This must appear first. */
gdb_smob base; gdb_smob base;
@@ -77,11 +77,11 @@ typedef struct
SCM lookup; SCM lookup;
/* Note: Attaching subprinters to this smob is left to Scheme. */ /* Note: Attaching subprinters to this smob is left to Scheme. */
} pretty_printer_smob; };
/* The <gdb:pretty-printer-worker> smob. */ /* The <gdb:pretty-printer-worker> smob. */
typedef struct struct pretty_printer_worker_smob
{ {
/* This must appear first. */ /* This must appear first. */
gdb_smob base; gdb_smob base;
@@ -99,7 +99,7 @@ typedef struct
The iterator returns a pair for each iteration: (name . value), The iterator returns a pair for each iteration: (name . value),
where "value" can have the same types as to_string. */ where "value" can have the same types as to_string. */
SCM children; SCM children;
} pretty_printer_worker_smob; };
static const char pretty_printer_smob_name[] = static const char pretty_printer_smob_name[] =
"gdb:pretty-printer"; "gdb:pretty-printer";

View File

@@ -28,10 +28,9 @@
/* NOTE: Python exports the name "Progspace", so we export "progspace". /* NOTE: Python exports the name "Progspace", so we export "progspace".
Internally we shorten that to "pspace". */ Internally we shorten that to "pspace". */
/* The <gdb:progspace> smob. /* The <gdb:progspace> smob. */
The typedef for this struct is in guile-internal.h. */
struct _pspace_smob struct pspace_smob
{ {
/* This always appears first. */ /* This always appears first. */
gdb_smob base; gdb_smob base;

View File

@@ -30,14 +30,14 @@
/* The <gdb:symbol> smob. */ /* The <gdb:symbol> smob. */
typedef struct struct symbol_smob
{ {
/* This always appears first. */ /* This always appears first. */
eqable_gdb_smob base; eqable_gdb_smob base;
/* The GDB symbol structure this smob is wrapping. */ /* The GDB symbol structure this smob is wrapping. */
struct symbol *symbol; struct symbol *symbol;
} symbol_smob; };
static const char symbol_smob_name[] = "gdb:symbol"; static const char symbol_smob_name[] = "gdb:symbol";

View File

@@ -29,7 +29,7 @@
/* A <gdb:symtab> smob. */ /* A <gdb:symtab> smob. */
typedef struct struct symtab_smob
{ {
/* This always appears first. /* This always appears first.
eqable_gdb_smob is used so that symtabs are eq?-able. eqable_gdb_smob is used so that symtabs are eq?-able.
@@ -42,7 +42,7 @@ typedef struct
If this is NULL the symtab is invalid. This can happen when the If this is NULL the symtab is invalid. This can happen when the
underlying objfile is freed. */ underlying objfile is freed. */
struct symtab *symtab; struct symtab *symtab;
} symtab_smob; };
/* A <gdb:sal> smob. /* A <gdb:sal> smob.
A smob describing a gdb symtab-and-line object. A smob describing a gdb symtab-and-line object.
@@ -50,7 +50,7 @@ typedef struct
the validity of symtab_scm. the validity of symtab_scm.
TODO: Sals are not eq?-able at the moment, or even comparable. */ TODO: Sals are not eq?-able at the moment, or even comparable. */
typedef struct struct sal_smob
{ {
/* This always appears first. */ /* This always appears first. */
gdb_smob base; gdb_smob base;
@@ -67,7 +67,7 @@ typedef struct
this pointer will not be updated. Use symtab_scm instead to determine this pointer will not be updated. Use symtab_scm instead to determine
if this sal is valid. */ if this sal is valid. */
struct symtab_and_line sal; struct symtab_and_line sal;
} sal_smob; };
static const char symtab_smob_name[] = "gdb:symtab"; static const char symtab_smob_name[] = "gdb:symtab";
/* "symtab-and-line" is pretty long, and "sal" is short and unique. */ /* "symtab-and-line" is pretty long, and "sal" is short and unique. */

View File

@@ -34,10 +34,9 @@
/* The <gdb:type> smob. /* The <gdb:type> smob.
The type is chained with all types associated with its objfile, if any. The type is chained with all types associated with its objfile, if any.
This lets us copy the underlying struct type when the objfile is This lets us copy the underlying struct type when the objfile is
deleted. deleted. */
The typedef for this struct is in guile-internal.h. */
struct _type_smob struct type_smob
{ {
/* This always appears first. /* This always appears first.
eqable_gdb_smob is used so that types are eq?-able. eqable_gdb_smob is used so that types are eq?-able.
@@ -52,7 +51,7 @@ struct _type_smob
/* A field smob. */ /* A field smob. */
typedef struct struct field_smob
{ {
/* This always appears first. */ /* This always appears first. */
gdb_smob base; gdb_smob base;
@@ -62,7 +61,7 @@ typedef struct
/* The field number in TYPE_SCM. */ /* The field number in TYPE_SCM. */
int field_num; int field_num;
} field_smob; };
static const char type_smob_name[] = "gdb:type"; static const char type_smob_name[] = "gdb:type";
static const char field_smob_name[] = "gdb:field"; static const char field_smob_name[] = "gdb:field";

View File

@@ -34,7 +34,7 @@
/* The <gdb:value> smob. */ /* The <gdb:value> smob. */
typedef struct _value_smob struct value_smob
{ {
/* This always appears first. */ /* This always appears first. */
gdb_smob base; gdb_smob base;
@@ -42,8 +42,8 @@ typedef struct _value_smob
/* Doubly linked list of values in values_in_scheme. /* Doubly linked list of values in values_in_scheme.
IWBN to use a chained_gdb_smob instead, which is doable, it just requires IWBN to use a chained_gdb_smob instead, which is doable, it just requires
a bit more casting than normal. */ a bit more casting than normal. */
struct _value_smob *next; value_smob *next;
struct _value_smob *prev; value_smob *prev;
struct value *value; struct value *value;
@@ -55,7 +55,7 @@ typedef struct _value_smob
SCM address; SCM address;
SCM type; SCM type;
SCM dynamic_type; SCM dynamic_type;
} value_smob; };
static const char value_smob_name[] = "gdb:value"; static const char value_smob_name[] = "gdb:value";

View File

@@ -260,7 +260,7 @@ const char * const linespec_keywords[] = { "if", "thread", "task", "-force-condi
/* A token of the linespec lexer */ /* A token of the linespec lexer */
struct ls_token struct linespec_token
{ {
/* The type of the token */ /* The type of the token */
linespec_token_type type; linespec_token_type type;
@@ -275,7 +275,6 @@ struct ls_token
const char *keyword; const char *keyword;
} data; } data;
}; };
typedef struct ls_token linespec_token;
#define LS_TOKEN_STOKEN(TOK) (TOK).data.string #define LS_TOKEN_STOKEN(TOK) (TOK).data.string
#define LS_TOKEN_KEYWORD(TOK) (TOK).data.keyword #define LS_TOKEN_KEYWORD(TOK) (TOK).data.keyword

View File

@@ -23,10 +23,10 @@
#include "disasm.h" #include "disasm.h"
#include "python-internal.h" #include "python-internal.h"
typedef struct arch_object_type_object { struct arch_object {
PyObject_HEAD PyObject_HEAD
struct gdbarch *gdbarch; struct gdbarch *gdbarch;
} arch_object; };
static struct gdbarch_data *arch_object_data = NULL; static struct gdbarch_data *arch_object_data = NULL;

View File

@@ -24,7 +24,7 @@
#include "python-internal.h" #include "python-internal.h"
#include "objfiles.h" #include "objfiles.h"
typedef struct blpy_block_object { struct block_object {
PyObject_HEAD PyObject_HEAD
/* The GDB block structure that represents a frame's code block. */ /* The GDB block structure that represents a frame's code block. */
const struct block *block; const struct block *block;
@@ -34,11 +34,11 @@ typedef struct blpy_block_object {
struct objfile *objfile; struct objfile *objfile;
/* Keep track of all blocks with a doubly-linked list. Needed for /* Keep track of all blocks with a doubly-linked list. Needed for
block invalidation if the source object file has been freed. */ block invalidation if the source object file has been freed. */
struct blpy_block_object *prev; block_object *prev;
struct blpy_block_object *next; block_object *next;
} block_object; };
typedef struct { struct block_syms_iterator_object {
PyObject_HEAD PyObject_HEAD
/* The block. */ /* The block. */
const struct block *block; const struct block *block;
@@ -49,8 +49,8 @@ typedef struct {
/* Pointer back to the original source block object. Needed to /* Pointer back to the original source block object. Needed to
check if the block is still valid, and has not been invalidated check if the block is still valid, and has not been invalidated
when an object file has been freed. */ when an object file has been freed. */
struct blpy_block_object *source; block_object *source;
} block_syms_iterator_object; };
/* Require a valid block. All access to block_object->block should be /* Require a valid block. All access to block_object->block should be
gated by this call. */ gated by this call. */
@@ -293,7 +293,7 @@ set_block (block_object *obj, const struct block *block,
if (objfile) if (objfile)
{ {
obj->objfile = objfile; obj->objfile = objfile;
obj->next = ((struct blpy_block_object *) obj->next = ((block_object *)
objfile_data (objfile, blpy_objfile_data_key)); objfile_data (objfile, blpy_objfile_data_key));
if (obj->next) if (obj->next)
obj->next->prev = obj; obj->next->prev = obj;

View File

@@ -66,8 +66,6 @@ struct cmdpy_object
struct cmd_list_element *sub_list; struct cmd_list_element *sub_list;
}; };
typedef struct cmdpy_object cmdpy_object;
extern PyTypeObject cmdpy_object_type extern PyTypeObject cmdpy_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("cmdpy_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("cmdpy_object");

View File

@@ -32,12 +32,12 @@
#include "py-event-types.def" #include "py-event-types.def"
#undef GDB_PY_DEFINE_EVENT_TYPE #undef GDB_PY_DEFINE_EVENT_TYPE
typedef struct struct event_object
{ {
PyObject_HEAD PyObject_HEAD
PyObject *dict; PyObject *dict;
} event_object; };
extern int emit_continue_event (ptid_t ptid); extern int emit_continue_event (ptid_t ptid);
extern int emit_exited_event (const LONGEST *exit_code, struct inferior *inf); extern int emit_exited_event (const LONGEST *exit_code, struct inferior *inf);

View File

@@ -27,17 +27,17 @@
/* Stores a list of objects to be notified when the event for which this /* Stores a list of objects to be notified when the event for which this
registry tracks occurs. */ registry tracks occurs. */
typedef struct struct eventregistry_object
{ {
PyObject_HEAD PyObject_HEAD
PyObject *callbacks; PyObject *callbacks;
} eventregistry_object; };
/* Struct holding references to event registries both in python and c. /* Struct holding references to event registries both in python and c.
This is meant to be a singleton. */ This is meant to be a singleton. */
typedef struct struct events_object
{ {
#define GDB_PY_DEFINE_EVENT(name) \ #define GDB_PY_DEFINE_EVENT(name) \
eventregistry_object *name; eventregistry_object *name;
@@ -46,7 +46,7 @@ typedef struct
PyObject *module; PyObject *module;
} events_object; };
/* Python events singleton. */ /* Python events singleton. */
extern events_object gdb_py_events; extern events_object gdb_py_events;

View File

@@ -28,7 +28,7 @@
#include "symfile.h" #include "symfile.h"
#include "objfiles.h" #include "objfiles.h"
typedef struct { struct frame_object {
PyObject_HEAD PyObject_HEAD
struct frame_id frame_id; struct frame_id frame_id;
struct gdbarch *gdbarch; struct gdbarch *gdbarch;
@@ -42,7 +42,7 @@ typedef struct {
ID as the previous frame). Whenever get_prev_frame returns NULL, we ID as the previous frame). Whenever get_prev_frame returns NULL, we
record the frame_id of the next frame and set FRAME_ID_IS_NEXT to 1. */ record the frame_id of the next frame and set FRAME_ID_IS_NEXT to 1. */
int frame_id_is_next; int frame_id_is_next;
} frame_object; };
/* Require a valid frame. This must be called inside a TRY_CATCH, or /* Require a valid frame. This must be called inside a TRY_CATCH, or
another context in which a gdb exception is allowed. */ another context in which a gdb exception is allowed. */

View File

@@ -61,14 +61,14 @@ extern PyTypeObject inferior_object_type
static const struct inferior_data *infpy_inf_data_key; static const struct inferior_data *infpy_inf_data_key;
typedef struct { struct membuf_object {
PyObject_HEAD PyObject_HEAD
void *buffer; void *buffer;
/* These are kept just for mbpy_str. */ /* These are kept just for mbpy_str. */
CORE_ADDR addr; CORE_ADDR addr;
CORE_ADDR length; CORE_ADDR length;
} membuf_object; };
extern PyTypeObject membuf_object_type extern PyTypeObject membuf_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("membuf_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("membuf_object");

View File

@@ -28,9 +28,9 @@ PyTypeObject py_insn_type = {
/* Python instruction object. */ /* Python instruction object. */
typedef struct { struct py_insn_obj {
PyObject_HEAD PyObject_HEAD
} py_insn_obj; };
/* Getter function for gdb.Instruction attributes. */ /* Getter function for gdb.Instruction attributes. */

View File

@@ -24,7 +24,7 @@
#include "valprint.h" #include "valprint.h"
#include "language.h" #include "language.h"
typedef struct { struct lazy_string_object {
PyObject_HEAD PyObject_HEAD
/* Holds the address of the lazy string. */ /* Holds the address of the lazy string. */
@@ -51,7 +51,7 @@ typedef struct {
This is recorded as a PyObject so that we take advantage of support for This is recorded as a PyObject so that we take advantage of support for
preserving the type should its owning objfile go away. */ preserving the type should its owning objfile go away. */
PyObject *type; PyObject *type;
} lazy_string_object; };
extern PyTypeObject lazy_string_object_type extern PyTypeObject lazy_string_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("lazy_string_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("lazy_string_object");

View File

@@ -20,29 +20,29 @@
#include "defs.h" #include "defs.h"
#include "python-internal.h" #include "python-internal.h"
typedef struct { struct linetable_entry_object {
PyObject_HEAD PyObject_HEAD
/* The line table source line. */ /* The line table source line. */
int line; int line;
/* The pc associated with the source line. */ /* The pc associated with the source line. */
CORE_ADDR pc; CORE_ADDR pc;
} linetable_entry_object; };
extern PyTypeObject linetable_entry_object_type extern PyTypeObject linetable_entry_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("linetable_entry_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("linetable_entry_object");
typedef struct { struct linetable_object {
PyObject_HEAD PyObject_HEAD
/* The symtab python object. We store the Python object here as the /* The symtab python object. We store the Python object here as the
underlying symtab can become invalid, and we have to run validity underlying symtab can become invalid, and we have to run validity
checks on it. */ checks on it. */
PyObject *symtab; PyObject *symtab;
} linetable_object; };
extern PyTypeObject linetable_object_type extern PyTypeObject linetable_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("linetable_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("linetable_object");
typedef struct { struct ltpy_iterator_object {
PyObject_HEAD PyObject_HEAD
/* The current entry in the line table for the iterator */ /* The current entry in the line table for the iterator */
int current_index; int current_index;
@@ -50,7 +50,7 @@ typedef struct {
check if the line table is still valid, and has not been invalidated check if the line table is still valid, and has not been invalidated
when an object file has been freed. */ when an object file has been freed. */
PyObject *source; PyObject *source;
} ltpy_iterator_object; };
extern PyTypeObject ltpy_iterator_object_type extern PyTypeObject ltpy_iterator_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("ltpy_iterator_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("ltpy_iterator_object");

View File

@@ -25,7 +25,7 @@
#include "build-id.h" #include "build-id.h"
#include "symtab.h" #include "symtab.h"
typedef struct struct objfile_object
{ {
PyObject_HEAD PyObject_HEAD
@@ -50,7 +50,7 @@ typedef struct
/* The debug method matcher list. */ /* The debug method matcher list. */
PyObject *xmethods; PyObject *xmethods;
} objfile_object; };
extern PyTypeObject objfile_object_type extern PyTypeObject objfile_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("objfile_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("objfile_object");

View File

@@ -91,8 +91,6 @@ struct parmpy_object
const char **enumeration; const char **enumeration;
}; };
typedef struct parmpy_object parmpy_object;
extern PyTypeObject parmpy_object_type extern PyTypeObject parmpy_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("parmpy_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("parmpy_object");

View File

@@ -27,7 +27,7 @@
#include "solib.h" #include "solib.h"
#include "block.h" #include "block.h"
typedef struct struct pspace_object
{ {
PyObject_HEAD PyObject_HEAD
@@ -52,7 +52,7 @@ typedef struct
/* The debug method list. */ /* The debug method list. */
PyObject *xmethods; PyObject *xmethods;
} pspace_object; };
extern PyTypeObject pspace_object_type extern PyTypeObject pspace_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("pspace_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("pspace_object");

View File

@@ -40,7 +40,7 @@
/* Python object for btrace record lists. */ /* Python object for btrace record lists. */
typedef struct { struct btpy_list_object {
PyObject_HEAD PyObject_HEAD
/* The thread this list belongs to. */ /* The thread this list belongs to. */
@@ -57,7 +57,7 @@ typedef struct {
/* Either &BTPY_CALL_TYPE or &RECPY_INSN_TYPE. */ /* Either &BTPY_CALL_TYPE or &RECPY_INSN_TYPE. */
PyTypeObject* element_type; PyTypeObject* element_type;
} btpy_list_object; };
/* Python type for btrace lists. */ /* Python type for btrace lists. */

View File

@@ -50,7 +50,7 @@ PyTypeObject recpy_gap_type = {
}; };
/* Python RecordGap object. */ /* Python RecordGap object. */
typedef struct struct recpy_gap_object
{ {
PyObject_HEAD PyObject_HEAD
@@ -62,7 +62,7 @@ typedef struct
/* Element number. */ /* Element number. */
Py_ssize_t number; Py_ssize_t number;
} recpy_gap_object; };
/* Implementation of record.method. */ /* Implementation of record.method. */

View File

@@ -25,7 +25,7 @@
#include "record.h" #include "record.h"
/* Python Record object. */ /* Python Record object. */
typedef struct struct recpy_record_object
{ {
PyObject_HEAD PyObject_HEAD
@@ -34,12 +34,12 @@ typedef struct
/* The current recording method. */ /* The current recording method. */
enum record_method method; enum record_method method;
} recpy_record_object; };
/* Python recorded element object. This is generic enough to represent /* Python recorded element object. This is generic enough to represent
recorded instructions as well as recorded function call segments, hence the recorded instructions as well as recorded function call segments, hence the
generic name. */ generic name. */
typedef struct struct recpy_element_object
{ {
PyObject_HEAD PyObject_HEAD
@@ -51,7 +51,7 @@ typedef struct
/* Element number. */ /* Element number. */
Py_ssize_t number; Py_ssize_t number;
} recpy_element_object; };
/* Python RecordInstruction type. */ /* Python RecordInstruction type. */
extern PyTypeObject recpy_insn_type; extern PyTypeObject recpy_insn_type;

View File

@@ -30,7 +30,7 @@
static struct gdbarch_data *gdbpy_register_object_data = NULL; static struct gdbarch_data *gdbpy_register_object_data = NULL;
/* Structure for iterator over register descriptors. */ /* Structure for iterator over register descriptors. */
typedef struct { struct register_descriptor_iterator_object {
PyObject_HEAD PyObject_HEAD
/* The register group that the user is iterating over. This will never /* The register group that the user is iterating over. This will never
@@ -42,13 +42,13 @@ typedef struct {
/* Pointer back to the architecture we're finding registers for. */ /* Pointer back to the architecture we're finding registers for. */
struct gdbarch *gdbarch; struct gdbarch *gdbarch;
} register_descriptor_iterator_object; };
extern PyTypeObject register_descriptor_iterator_object_type extern PyTypeObject register_descriptor_iterator_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("register_descriptor_iterator_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("register_descriptor_iterator_object");
/* A register descriptor. */ /* A register descriptor. */
typedef struct { struct register_descriptor_object {
PyObject_HEAD PyObject_HEAD
/* The register this is a descriptor for. */ /* The register this is a descriptor for. */
@@ -56,13 +56,13 @@ typedef struct {
/* The architecture this is a register for. */ /* The architecture this is a register for. */
struct gdbarch *gdbarch; struct gdbarch *gdbarch;
} register_descriptor_object; };
extern PyTypeObject register_descriptor_object_type extern PyTypeObject register_descriptor_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("register_descriptor_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("register_descriptor_object");
/* Structure for iterator over register groups. */ /* Structure for iterator over register groups. */
typedef struct { struct reggroup_iterator_object {
PyObject_HEAD PyObject_HEAD
/* The last register group returned. Initially this will be NULL. */ /* The last register group returned. Initially this will be NULL. */
@@ -70,18 +70,18 @@ typedef struct {
/* Pointer back to the architecture we're finding registers for. */ /* Pointer back to the architecture we're finding registers for. */
struct gdbarch *gdbarch; struct gdbarch *gdbarch;
} reggroup_iterator_object; };
extern PyTypeObject reggroup_iterator_object_type extern PyTypeObject reggroup_iterator_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("reggroup_iterator_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("reggroup_iterator_object");
/* A register group object. */ /* A register group object. */
typedef struct { struct reggroup_object {
PyObject_HEAD PyObject_HEAD
/* The register group being described. */ /* The register group being described. */
struct reggroup *reggroup; struct reggroup *reggroup;
} reggroup_object; };
extern PyTypeObject reggroup_object_type extern PyTypeObject reggroup_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("reggroup_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("reggroup_object");

View File

@@ -25,7 +25,7 @@
#include "objfiles.h" #include "objfiles.h"
#include "symfile.h" #include "symfile.h"
typedef struct sympy_symbol_object { struct symbol_object {
PyObject_HEAD PyObject_HEAD
/* The GDB symbol structure this object is wrapping. */ /* The GDB symbol structure this object is wrapping. */
struct symbol *symbol; struct symbol *symbol;
@@ -33,9 +33,9 @@ typedef struct sympy_symbol_object {
doubly-linked list, rooted in the objfile. This lets us doubly-linked list, rooted in the objfile. This lets us
invalidate the underlying struct symbol when the objfile is invalidate the underlying struct symbol when the objfile is
deleted. */ deleted. */
struct sympy_symbol_object *prev; symbol_object *prev;
struct sympy_symbol_object *next; symbol_object *next;
} symbol_object; };
/* Require a valid symbol. All access to symbol_object->symbol should be /* Require a valid symbol. All access to symbol_object->symbol should be
gated by this call. */ gated by this call. */
@@ -307,7 +307,7 @@ set_symbol (symbol_object *obj, struct symbol *symbol)
{ {
struct objfile *objfile = symbol_objfile (symbol); struct objfile *objfile = symbol_objfile (symbol);
obj->next = ((struct sympy_symbol_object *) obj->next = ((symbol_object *)
objfile_data (objfile, sympy_objfile_data_key)); objfile_data (objfile, sympy_objfile_data_key));
if (obj->next) if (obj->next)
obj->next->prev = obj; obj->next->prev = obj;

View File

@@ -25,7 +25,7 @@
#include "objfiles.h" #include "objfiles.h"
#include "block.h" #include "block.h"
typedef struct stpy_symtab_object { struct symtab_object {
PyObject_HEAD PyObject_HEAD
/* The GDB Symbol table structure. */ /* The GDB Symbol table structure. */
struct symtab *symtab; struct symtab *symtab;
@@ -33,9 +33,9 @@ typedef struct stpy_symtab_object {
a doubly-linked list, rooted in the objfile. This allows a doubly-linked list, rooted in the objfile. This allows
invalidation of the underlying struct symtab when the objfile is invalidation of the underlying struct symtab when the objfile is
deleted. */ deleted. */
struct stpy_symtab_object *prev; symtab_object *prev;
struct stpy_symtab_object *next; symtab_object *next;
} symtab_object; };
extern PyTypeObject symtab_object_type extern PyTypeObject symtab_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("symtab_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("symtab_object");
@@ -54,7 +54,7 @@ static const struct objfile_data *stpy_objfile_data_key;
} \ } \
} while (0) } while (0)
typedef struct salpy_sal_object { struct sal_object {
PyObject_HEAD PyObject_HEAD
/* The GDB Symbol table structure. */ /* The GDB Symbol table structure. */
PyObject *symtab; PyObject *symtab;
@@ -64,9 +64,9 @@ typedef struct salpy_sal_object {
track with a doubly-linked list, rooted in the objfile. This track with a doubly-linked list, rooted in the objfile. This
allows invalidation of the underlying struct symtab_and_line allows invalidation of the underlying struct symtab_and_line
when the objfile is deleted. */ when the objfile is deleted. */
struct salpy_sal_object *prev; sal_object *prev;
struct salpy_sal_object *next; sal_object *next;
} sal_object; };
extern PyTypeObject sal_object_type extern PyTypeObject sal_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("sal_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("sal_object");
@@ -378,8 +378,8 @@ set_sal (sal_object *sal_obj, struct symtab_and_line sal)
symtab *symtab = symtab_object_to_symtab (sal_obj->symtab); symtab *symtab = symtab_object_to_symtab (sal_obj->symtab);
sal_obj->next sal_obj->next
= ((struct salpy_sal_object *) objfile_data (SYMTAB_OBJFILE (symtab), = ((sal_object *) objfile_data (SYMTAB_OBJFILE (symtab),
salpy_objfile_data_key)); salpy_objfile_data_key));
if (sal_obj->next) if (sal_obj->next)
sal_obj->next->prev = sal_obj; sal_obj->next->prev = sal_obj;
@@ -405,7 +405,7 @@ set_symtab (symtab_object *obj, struct symtab *symtab)
if (symtab) if (symtab)
{ {
obj->next obj->next
= ((struct stpy_symtab_object *) = ((symtab_object *)
objfile_data (SYMTAB_OBJFILE (symtab), stpy_objfile_data_key)); objfile_data (SYMTAB_OBJFILE (symtab), stpy_objfile_data_key));
if (obj->next) if (obj->next)
obj->next->prev = obj; obj->next->prev = obj;

View File

@@ -28,7 +28,7 @@
#include "language.h" #include "language.h"
#include "typeprint.h" #include "typeprint.h"
typedef struct pyty_type_object struct type_object
{ {
PyObject_HEAD PyObject_HEAD
struct type *type; struct type *type;
@@ -36,35 +36,35 @@ typedef struct pyty_type_object
/* If a Type object is associated with an objfile, it is kept on a /* If a Type object is associated with an objfile, it is kept on a
doubly-linked list, rooted in the objfile. This lets us copy the doubly-linked list, rooted in the objfile. This lets us copy the
underlying struct type when the objfile is deleted. */ underlying struct type when the objfile is deleted. */
struct pyty_type_object *prev; struct type_object *prev;
struct pyty_type_object *next; struct type_object *next;
} type_object; };
extern PyTypeObject type_object_type extern PyTypeObject type_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("type_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("type_object");
/* A Field object. */ /* A Field object. */
typedef struct pyty_field_object struct field_object
{ {
PyObject_HEAD PyObject_HEAD
/* Dictionary holding our attributes. */ /* Dictionary holding our attributes. */
PyObject *dict; PyObject *dict;
} field_object; };
extern PyTypeObject field_object_type extern PyTypeObject field_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("field_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("field_object");
/* A type iterator object. */ /* A type iterator object. */
typedef struct { struct typy_iterator_object {
PyObject_HEAD PyObject_HEAD
/* The current field index. */ /* The current field index. */
int field; int field;
/* What to return. */ /* What to return. */
enum gdbpy_iter_kind kind; enum gdbpy_iter_kind kind;
/* Pointer back to the original source type object. */ /* Pointer back to the original source type object. */
struct pyty_type_object *source; type_object *source;
} typy_iterator_object; };
extern PyTypeObject type_iterator_object_type extern PyTypeObject type_iterator_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("typy_iterator_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("typy_iterator_object");
@@ -1101,7 +1101,7 @@ set_type (type_object *obj, struct type *type)
{ {
struct objfile *objfile = TYPE_OBJFILE (type); struct objfile *objfile = TYPE_OBJFILE (type);
obj->next = ((struct pyty_type_object *) obj->next = ((type_object *)
objfile_data (objfile, typy_objfile_data_key)); objfile_data (objfile, typy_objfile_data_key));
if (obj->next) if (obj->next)
obj->next->prev = obj; obj->next->prev = obj;

View File

@@ -31,7 +31,7 @@
#define TRACE_PY_UNWIND(level, args...) if (pyuw_debug >= level) \ #define TRACE_PY_UNWIND(level, args...) if (pyuw_debug >= level) \
{ fprintf_unfiltered (gdb_stdlog, args); } { fprintf_unfiltered (gdb_stdlog, args); }
typedef struct struct pending_frame_object
{ {
PyObject_HEAD PyObject_HEAD
@@ -40,7 +40,7 @@ typedef struct
/* Its architecture, passed by the sniffer caller. */ /* Its architecture, passed by the sniffer caller. */
struct gdbarch *gdbarch; struct gdbarch *gdbarch;
} pending_frame_object; };
/* Saved registers array item. */ /* Saved registers array item. */
@@ -59,7 +59,7 @@ struct saved_reg
/* The data we keep for the PyUnwindInfo: pending_frame, saved registers /* The data we keep for the PyUnwindInfo: pending_frame, saved registers
and frame ID. */ and frame ID. */
typedef struct struct unwind_info_object
{ {
PyObject_HEAD PyObject_HEAD
@@ -71,12 +71,12 @@ typedef struct
/* Saved registers array. */ /* Saved registers array. */
std::vector<saved_reg> *saved_regs; std::vector<saved_reg> *saved_regs;
} unwind_info_object; };
/* The data we keep for a frame we can unwind: frame ID and an array of /* The data we keep for a frame we can unwind: frame ID and an array of
(register_number, register_value) pairs. */ (register_number, register_value) pairs. */
typedef struct struct cached_frame_info
{ {
/* Frame ID. */ /* Frame ID. */
struct frame_id frame_id; struct frame_id frame_id;
@@ -88,7 +88,7 @@ typedef struct
int reg_count; int reg_count;
cached_reg_t reg[]; cached_reg_t reg[];
} cached_frame_info; };
extern PyTypeObject pending_frame_object_type extern PyTypeObject pending_frame_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("pending_frame_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("pending_frame_object");

View File

@@ -53,7 +53,7 @@
#define builtin_type_pychar \ #define builtin_type_pychar \
language_string_char_type (python_language, python_gdbarch) language_string_char_type (python_language, python_gdbarch)
typedef struct value_object { struct value_object {
PyObject_HEAD PyObject_HEAD
struct value_object *next; struct value_object *next;
struct value_object *prev; struct value_object *prev;
@@ -61,7 +61,7 @@ typedef struct value_object {
PyObject *address; PyObject *address;
PyObject *type; PyObject *type;
PyObject *dynamic_type; PyObject *dynamic_type;
} value_object; };
/* List of all values which are currently exposed to Python. It is /* List of all values which are currently exposed to Python. It is
maintained so that when an objfile is discarded, preserve_values maintained so that when an objfile is discarded, preserve_values

View File

@@ -318,7 +318,7 @@ extern PyTypeObject frame_object_type
extern PyTypeObject thread_object_type extern PyTypeObject thread_object_type
CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("thread_object"); CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("thread_object");
typedef struct gdbpy_breakpoint_object struct gdbpy_breakpoint_object
{ {
PyObject_HEAD PyObject_HEAD
@@ -331,7 +331,7 @@ typedef struct gdbpy_breakpoint_object
/* 1 is this is a FinishBreakpoint object, 0 otherwise. */ /* 1 is this is a FinishBreakpoint object, 0 otherwise. */
int is_finish_bp; int is_finish_bp;
} gdbpy_breakpoint_object; };
/* Require that BREAKPOINT be a valid breakpoint ID; throw a Python /* Require that BREAKPOINT be a valid breakpoint ID; throw a Python
exception if it is invalid. */ exception if it is invalid. */
@@ -361,7 +361,7 @@ typedef struct gdbpy_breakpoint_object
extern gdbpy_breakpoint_object *bppy_pending_object; extern gdbpy_breakpoint_object *bppy_pending_object;
typedef struct struct thread_object
{ {
PyObject_HEAD PyObject_HEAD
@@ -370,7 +370,7 @@ typedef struct
/* The Inferior object to which this thread belongs. */ /* The Inferior object to which this thread belongs. */
PyObject *inf_obj; PyObject *inf_obj;
} thread_object; };
struct inferior_object; struct inferior_object;