summaryrefslogtreecommitdiff
path: root/gold/gold.h
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>2009-04-02 04:19:03 +0000
committerIan Lance Taylor <ian@airs.com>2009-04-02 04:19:03 +0000
commite55bde5eb0ac6c73574b45f17df964458e94488c (patch)
tree9d20b0fedd1cd9a043f462013957be1c54a7136e /gold/gold.h
parente401b04ca7cd4cc3450c375b63b30b0907f14de0 (diff)
* gold.h (reserve_unordered_map): Define, three versions, one for
each version of Unordered_map. * layout.cc (Layout::Layout): Remove options parameter. Add number_of_input_files parameter. Don't initialize options_. Initialize number_of_input_files_ and resized_signatures_. Move sections_are_attached_. (Layout::layout_group): Reserve space for group_signatures_. (Layout::find_or_add_kept_section): Change name parameter to be a reference. Resize signatures_ map when it gets large enough. (Layout::layout_eh_frame): Use parameters->options() instead of this->options_. (Layout::make_output_section): Likewise. (Layout::attach_allocated_section_to_segment): Likewise. (Layout::finalize, Layout::create_executable_stack): Likewise. (Layout::set_segment_offsets, Layout::create_interp): Likewise. (Layout::finish_dynamic_section, Layout::write_binary): Likewise. * layout.h (class Layout): Update declarations. Remove options_ field. Add number_of_input_files_ and resized_signatures_ fields. Move sections_are_attached_ field. * main.cc (main): Pass number of input files to Layout constructor. Don't pass options.
Diffstat (limited to 'gold/gold.h')
-rw-r--r--gold/gold.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/gold/gold.h b/gold/gold.h
index a377f96edf..4c23aa6f6d 100644
--- a/gold/gold.h
+++ b/gold/gold.h
@@ -75,6 +75,8 @@
#define Unordered_set std::tr1::unordered_set
#define Unordered_map std::tr1::unordered_map
+#define reserve_unordered_map(map, n) ((map)->rehash(n))
+
#elif defined(HAVE_EXT_HASH_MAP) && defined(HAVE_EXT_HASH_SET)
#include <ext/hash_map>
@@ -105,6 +107,8 @@ struct hash<T*>
}
+#define reserve_unordered_map(map, n) ((map)->resize(n))
+
#else
// The fallback is to just use set and map.
@@ -115,6 +119,8 @@ struct hash<T*>
#define Unordered_set std::set
#define Unordered_map std::map
+#define reserve_unordered_map(map, n)
+
#endif
#ifndef HAVE_PREAD