From f52688890edd7c587ec11cf1d565f235e41a6c43 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 16 Jan 2023 17:04:39 -0700 Subject: Avoid extra allocations in block block_set_scope and block_set_using unconditionally allocate the block namespace object. However, this isn't truly needed, so arrange to only allocate when it is. --- gdb/block.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gdb/block.c b/gdb/block.c index 751f67d..f24a2b5 100644 --- a/gdb/block.c +++ b/gdb/block.c @@ -320,6 +320,12 @@ void block_set_scope (struct block *block, const char *scope, struct obstack *obstack) { + if (scope == nullptr || scope[0] == '\0') + { + /* Don't bother. */ + return; + } + block_initialize_namespace (block, obstack); block->namespace_info ()->scope = scope; @@ -346,6 +352,12 @@ block_set_using (struct block *block, struct using_direct *using_decl, struct obstack *obstack) { + if (using_decl == nullptr) + { + /* Don't bother. */ + return; + } + block_initialize_namespace (block, obstack); block->namespace_info ()->using_decl = using_decl; -- cgit v1.1