diff options
author | Yao Qi <yao.qi@linaro.org> | 2017-04-28 22:48:42 +0100 |
---|---|---|
committer | Yao Qi <yao.qi@linaro.org> | 2017-04-28 22:48:42 +0100 |
commit | deb1fa3edaf10c65d1f39951779927da955e3a57 (patch) | |
tree | 2c9ec3e61edf329ab924e7506ca7725abb91212a /gdb/regcache.h | |
parent | b421c83cb866120ab347d60fda20fb0e2011be8c (diff) | |
download | gdb-deb1fa3edaf10c65d1f39951779927da955e3a57.zip gdb-deb1fa3edaf10c65d1f39951779927da955e3a57.tar.gz gdb-deb1fa3edaf10c65d1f39951779927da955e3a57.tar.bz2 |
Use tag dispatch regcache ctor in regcache_dup
This patch adds a tag dispatch ctor to create read-only regcache from
a write-through regcache, also this patch deletes copy ctor and
assignment operator.
gdb:
2017-04-28 Yao Qi <yao.qi@linaro.org>
Pedro Alves <palves@redhat.com>
* regcache.c (regcache::regcache): New tag dispatch ctor.
(do_cooked_read): Moved above.
(regcache_dup): Use the tag dispatch ctor..
* regcache.h (regcache): Declare ctor, delete copy ctor and
assignment operator, remove friend regcache_dup.
Diffstat (limited to 'gdb/regcache.h')
-rw-r--r-- | gdb/regcache.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/gdb/regcache.h b/gdb/regcache.h index c5d21f7..36255da 100644 --- a/gdb/regcache.h +++ b/gdb/regcache.h @@ -240,6 +240,15 @@ public: : regcache (gdbarch, aspace_, true) {} + struct readonly_t {}; + static constexpr readonly_t readonly {}; + + /* Create a readonly regcache from a non-readonly regcache. */ + regcache (readonly_t, const regcache &src); + + regcache (const regcache &) = delete; + void operator= (const regcache &) = delete; + ~regcache () { xfree (m_registers); @@ -373,9 +382,6 @@ 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 |