diff options
author | Simon Marchi <simon.marchi@ericsson.com> | 2018-06-09 22:30:34 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@polymtl.ca> | 2018-06-09 22:30:42 -0400 |
commit | 835dcf92618e294d3c6c2bedd94af712809c96a3 (patch) | |
tree | 4c93c85f195721f4d89dd4d85b492d2670a4fe2a /gdb/regcache.h | |
parent | aac0d564cea04b1c5f386e8cea924ca59057e8b4 (diff) | |
download | gdb-835dcf92618e294d3c6c2bedd94af712809c96a3.zip gdb-835dcf92618e294d3c6c2bedd94af712809c96a3.tar.gz gdb-835dcf92618e294d3c6c2bedd94af712809c96a3.tar.bz2 |
Use std::unique_ptr in reg_buffer
Using std::unique_ptr allows to remove the manual xfree in the
destructor.
If I understand correctly, using the () after the new operator will make
sure the allocated objects will be value initialized, which for scalars
means they are zero-initialized. So it should have the same behavior as
XCNEWVEC.
gdb/ChangeLog:
* regcache.h (reg_buffer) <~reg_buffer>: Use default destructor.
<m_registers, m_register_status>: Change type to
std::unique_ptr.
* regcache.c (reg_buffer::reg_buffer): Use new instead of
XCNEWVEC.
Diffstat (limited to 'gdb/regcache.h')
-rw-r--r-- | gdb/regcache.h | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/gdb/regcache.h b/gdb/regcache.h index 1001eed..2f460a0 100644 --- a/gdb/regcache.h +++ b/gdb/regcache.h @@ -153,11 +153,8 @@ public: buffer. */ enum register_status get_register_status (int regnum) const; - virtual ~reg_buffer () - { - xfree (m_registers); - xfree (m_register_status); - } + virtual ~reg_buffer () = default; + protected: /* Assert on the range of REGNUM. */ void assert_regnum (int regnum) const; @@ -175,9 +172,9 @@ protected: bool m_has_pseudo; /* The register buffers. */ - gdb_byte *m_registers; + std::unique_ptr<gdb_byte[]> m_registers; /* Register cache status. */ - register_status *m_register_status; + std::unique_ptr<register_status[]> m_register_status; friend class regcache; friend class detached_regcache; |