Eliminate the two-level data structures behind location_specs
Currently, there's the location_spec hierarchy, and then some location_spec subclasses have their own struct type holding all their data fields. I.e., there is this: location_spec explicit_location_spec linespec_location_spec address_location_spec probe_location_spec and then these separate types: explicit_location linespec_location where: explicit_location_spec has-a explicit_location linespec_location_spec has-a linespec_location This patch eliminates explicit_location and linespec_location, inlining their members in the corresponding location_spec type. The location_spec subclasses were the ones currently defined in location.c, so they are moved to the header. Since the definitions of the classes are now visible, we no longer need location_spec_deleter. Some constructors that are used for cloning location_specs, like: explicit explicit_location_spec (const struct explicit_location *loc) ... were converted to proper copy ctors. In the process, initialize_explicit_location is eliminated, and some functions that returned the "data type behind a locspec", like get_linespec_location are converted to downcast functions, like as_linespec_location_spec. Change-Id: Ia31ccef9382b25a52b00fa878c8df9b8cf2a6c5a
Showing
- gdb/break-catch-throw.c 3 additions, 6 deletionsgdb/break-catch-throw.c
- gdb/breakpoint.c 16 additions, 28 deletionsgdb/breakpoint.c
- gdb/completer.c 3 additions, 3 deletionsgdb/completer.c
- gdb/linespec.c 47 additions, 59 deletionsgdb/linespec.c
- gdb/location.c 193 additions, 319 deletionsgdb/location.c
- gdb/location.h 165 additions, 68 deletionsgdb/location.h
- gdb/mi/mi-cmd-break.c 12 additions, 13 deletionsgdb/mi/mi-cmd-break.c
- gdb/probe.c 1 addition, 1 deletiongdb/probe.c
- gdb/python/py-breakpoint.c 12 additions, 9 deletionsgdb/python/py-breakpoint.c
Loading
Please register or sign in to comment