[Ada] Make the ATCB type info program-space-specific
authorJoel Brobecker <brobecker@gnat.com>
Fri, 16 Sep 2011 19:09:07 +0000 (19:09 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Fri, 16 Sep 2011 19:09:07 +0000 (19:09 +0000)
commit6da9ca05ace2b56540db950aa5281e6ef76f76c3
tree67c018a6143b834f915c35330d767006267318b9
parentdccd3cbdabe18b21f6085fcf60323cbc466d1161
[Ada] Make the ATCB type info program-space-specific

This module caches the type description of various elements of
the Ada Task Control Block (ATCB). This cache was implemented
as static globals, which is wrong in the case where we have
multiple inferiors. This change cleans things up a bit by moving
some of these static globals to a per-program-space area.

gdb/ChangeLog:

        * ada-tasks.c: #include "progspace.h" and "objfiles.h".
        (atcb_type, atcb_common_type, atcb_ll_type, atcb_call_type)
        (atcb_fieldno): Delete these static globals.
        (struct ada_tasks_pspace_data): New struct.
        (ada_tasks_pspace_data_handle): New static global.
        (get_ada_tasks_pspace_data): New function.
        (ada_tasks_invalidate_pspace_data): New function.
        (get_tcb_types_info, ptid_from_atcb_common, read_atcb)
        (read_known_tasks_list, ada_new_objfile_observer): Adjust.
        (_initialize_tasks): Create this module's per-progspace
        data handle.
gdb/ChangeLog
gdb/ada-tasks.c