From: Yao Qi Date: Fri, 28 Apr 2017 21:48:42 +0000 (+0100) Subject: Simplify regcache_dup X-Git-Tag: users/hjl/linux/release/2.28.51.0.1~1^2~45^2~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b421c83cb866120ab347d60fda20fb0e2011be8c;p=thirdparty%2Fbinutils-gdb.git Simplify regcache_dup regcache_dup, in fact, is to create a readonly regcache from a non-readonly regcache. This patch adds an assert that src is not readonly. gdb: 2017-04-28 Yao Qi * regcache.c (regcache_dup): Assert !src->m_readonly_p and call method save instead of regcache_cpy. * regcache.h (struct regcache): Make regcache_dup a friend. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 537213db6d7..7e89c749e80 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2017-04-28 Yao Qi + + * regcache.c (regcache_dup): Assert !src->m_readonly_p and + call method save instead of regcache_cpy. + * regcache.h (struct regcache): Make regcache_dup a friend. + 2017-04-28 Yao Qi * regcache.c (struct regcache): Move to regcache.h diff --git a/gdb/regcache.c b/gdb/regcache.c index 11f6a874f31..c30d1c73b81 100644 --- a/gdb/regcache.c +++ b/gdb/regcache.c @@ -422,8 +422,9 @@ regcache_dup (struct regcache *src) { struct regcache *newbuf; + gdb_assert (!src->m_readonly_p); newbuf = regcache_xmalloc (src->arch (), get_regcache_aspace (src)); - regcache_cpy (newbuf, src); + newbuf->save (do_cooked_read, src); return newbuf; } diff --git a/gdb/regcache.h b/gdb/regcache.h index e03a39fbcef..c5d21f7439a 100644 --- a/gdb/regcache.h +++ b/gdb/regcache.h @@ -373,6 +373,9 @@ private: friend void regcache_cpy (struct regcache *dst, struct regcache *src); + + friend struct regcache * + regcache_dup (struct regcache *src); }; /* Copy/duplicate the contents of a register cache. By default, the