From 0907af0cebec54961d0bd9f15679f038f285dcda Mon Sep 17 00:00:00 2001 From: Doug Evans Date: Mon, 2 Jul 2012 20:02:39 +0000 Subject: [PATCH] * dwarf2read.c (maybe_queue_comp_unit): Move definition next to others related to queue management. --- gdb/ChangeLog | 3 ++ gdb/dwarf2read.c | 84 ++++++++++++++++++++++++------------------------ 2 files changed, 45 insertions(+), 42 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5462b99240..49d8b3054f 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,8 @@ 2012-07-02 Doug Evans + * 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 328c293d48..52288e8955 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. */