From: Tom Tromey Date: Tue, 17 Jan 2023 00:04:39 +0000 (-0700) Subject: Avoid extra allocations in block X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f52688890edd7c587ec11cf1d565f235e41a6c43;p=binutils-gdb.git 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. --- diff --git a/gdb/block.c b/gdb/block.c index 751f67d30f7..f24a2b5d084 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;