diff options
author | Doug Evans <dje@google.com> | 2012-07-02 20:02:39 +0000 |
---|---|---|
committer | Doug Evans <dje@google.com> | 2012-07-02 20:02:39 +0000 |
commit | 0907af0cebec54961d0bd9f15679f038f285dcda (patch) | |
tree | 71cdbc87b48355ca78779d57ab947e17556ece48 /gdb | |
parent | 35aeab69a08858dd22a25fac0bcb7c0804287705 (diff) | |
download | gdb-0907af0cebec54961d0bd9f15679f038f285dcda.zip gdb-0907af0cebec54961d0bd9f15679f038f285dcda.tar.gz gdb-0907af0cebec54961d0bd9f15679f038f285dcda.tar.bz2 |
* dwarf2read.c (maybe_queue_comp_unit): Move definition next to others
related to queue management.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 3 | ||||
-rw-r--r-- | gdb/dwarf2read.c | 84 |
2 files changed, 45 insertions, 42 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5462b99..49d8b30 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,8 @@ 2012-07-02 Doug Evans <dje@google.com> + * dwarf2read.c (maybe_queue_comp_unit): Move definition next to others + related to queue management. + * dwarf2read.c (create_debug_types_hash_table): Use "debug dwarf2-read" instead of "debug dwarf2-die" in debugging printfs. (create_debug_info_hash_table_reader): Ditto. diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 328c293..52288e8 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -5496,6 +5496,48 @@ queue_comp_unit (struct dwarf2_per_cu_data *per_cu, dwarf2_queue_tail = item; } +/* THIS_CU has a reference to PER_CU. If necessary, load the new compilation + unit and add it to our queue. + The result is non-zero if PER_CU was queued, otherwise the result is zero + meaning either PER_CU is already queued or it is already loaded. */ + +static int +maybe_queue_comp_unit (struct dwarf2_cu *this_cu, + struct dwarf2_per_cu_data *per_cu, + enum language pretend_language) +{ + /* We may arrive here during partial symbol reading, if we need full + DIEs to process an unusual case (e.g. template arguments). Do + not queue PER_CU, just tell our caller to load its DIEs. */ + if (dwarf2_per_objfile->reading_partial_symbols) + { + if (per_cu->cu == NULL || per_cu->cu->dies == NULL) + return 1; + return 0; + } + + /* Mark the dependence relation so that we don't flush PER_CU + too early. */ + dwarf2_add_dependence (this_cu, per_cu); + + /* If it's already on the queue, we have nothing to do. */ + if (per_cu->queued) + return 0; + + /* If the compilation unit is already loaded, just mark it as + used. */ + if (per_cu->cu != NULL) + { + per_cu->cu->last_used = 0; + return 0; + } + + /* Add it to the queue. */ + queue_comp_unit (per_cu, pretend_language); + + return 1; +} + /* Process the queue. */ static void @@ -15224,48 +15266,6 @@ dwarf2_get_attr_constant_value (struct attribute *attr, int default_value) } } -/* THIS_CU has a reference to PER_CU. If necessary, load the new compilation - unit and add it to our queue. - The result is non-zero if PER_CU was queued, otherwise the result is zero - meaning either PER_CU is already queued or it is already loaded. */ - -static int -maybe_queue_comp_unit (struct dwarf2_cu *this_cu, - struct dwarf2_per_cu_data *per_cu, - enum language pretend_language) -{ - /* We may arrive here during partial symbol reading, if we need full - DIEs to process an unusual case (e.g. template arguments). Do - not queue PER_CU, just tell our caller to load its DIEs. */ - if (dwarf2_per_objfile->reading_partial_symbols) - { - if (per_cu->cu == NULL || per_cu->cu->dies == NULL) - return 1; - return 0; - } - - /* Mark the dependence relation so that we don't flush PER_CU - too early. */ - dwarf2_add_dependence (this_cu, per_cu); - - /* If it's already on the queue, we have nothing to do. */ - if (per_cu->queued) - return 0; - - /* If the compilation unit is already loaded, just mark it as - used. */ - if (per_cu->cu != NULL) - { - per_cu->cu->last_used = 0; - return 0; - } - - /* Add it to the queue. */ - queue_comp_unit (per_cu, pretend_language); - - return 1; -} - /* Follow reference or signature attribute ATTR of SRC_DIE. On entry *REF_CU is the CU of SRC_DIE. On exit *REF_CU is the CU of the result. */ |