diff options
Diffstat (limited to 'gdb/progspace.c')
-rw-r--r-- | gdb/progspace.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/gdb/progspace.c b/gdb/progspace.c index 6e72211..303e88e 100644 --- a/gdb/progspace.c +++ b/gdb/progspace.c @@ -44,17 +44,25 @@ static int highest_address_space_num; DEFINE_REGISTRY (program_space, REGISTRY_ACCESS_FIELD) - - -/* An address space. Currently this is not used for much other than - for comparing if pspaces/inferior/threads see the same address +/* An address space. It is used for comparing if pspaces/inferior/threads + see the same address space and for associating caches to each address space. */ struct address_space { int num; + + /* Per aspace data-pointers required by other GDB modules. */ + REGISTRY_FIELDS; }; +/* Keep a registry of per-address_space data-pointers required by other GDB + modules. */ + +DEFINE_REGISTRY (address_space, REGISTRY_ACCESS_FIELD) + + + /* Create a new address space object, and add it to the list. */ struct address_space * @@ -64,6 +72,7 @@ new_address_space (void) aspace = XZALLOC (struct address_space); aspace->num = ++highest_address_space_num; + address_space_alloc_data (aspace); return aspace; } @@ -89,6 +98,7 @@ maybe_new_address_space (void) static void free_address_space (struct address_space *aspace) { + address_space_free_data (aspace); xfree (aspace); } |