diff options
author | Simon Marchi <simon.marchi@polymtl.ca> | 2020-10-05 09:02:42 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2020-10-05 09:03:09 -0400 |
commit | 7d1441178ac6d5b31e3ebf312012c2d5bfaeec91 (patch) | |
tree | 752eb8287e0296cf2f176b3fbf4659a91345b49a /gdb/auto-load.c | |
parent | 6d96a5946d1ec76fea79bc36aa95d7d3dd304200 (diff) | |
download | binutils-gdb-7d1441178ac6d5b31e3ebf312012c2d5bfaeec91.tar.gz |
gdb: avoid unnecessary string copy in auto_load_objfile_script_1
Assigning the result of STRIP_DRIVE_SPEC to an std::string creates an
unnecessary copy of the string. STRIP_DRIVE_SPEC is defined as:
#define STRIP_DRIVE_SPEC(f) ((f) + 2)
So if it is passed a "const char *", it returns a "const char *". We
could use a "const char *" intermediary variable instead of an
std::string, or (as implemented in this patch) just use it directly in
the concatenation right after.
gdb/ChangeLog:
* auto-load.c (auto_load_objfile_script_1): Don't use
debugfile_holder as temporary variable when stripping drive
letter.
Change-Id: If2ccc7a156b22100754d9cdf6778ac7eeb93da4c
Diffstat (limited to 'gdb/auto-load.c')
-rw-r--r-- | gdb/auto-load.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/gdb/auto-load.c b/gdb/auto-load.c index 9a51d2f3dc6..43d007ca5b0 100644 --- a/gdb/auto-load.c +++ b/gdb/auto-load.c @@ -777,10 +777,8 @@ auto_load_objfile_script_1 (struct objfile *objfile, const char *realname, /* Convert Windows file name from c:/dir/file to /c/dir/file. */ if (HAS_DRIVE_SPEC (debugfile)) - { - debugfile_holder = STRIP_DRIVE_SPEC (debugfile); - filename = std::string("\\") + debugfile[0] + debugfile_holder; - } + filename = (std::string("\\") + debugfile[0] + + STRIP_DRIVE_SPEC (debugfile)); for (const gdb::unique_xmalloc_ptr<char> &dir : vec) { |