aboutsummaryrefslogtreecommitdiff
path: root/gdb/regcache.h
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@ericsson.com>2018-06-09 22:30:34 -0400
committerSimon Marchi <simon.marchi@polymtl.ca>2018-06-09 22:30:42 -0400
commit835dcf92618e294d3c6c2bedd94af712809c96a3 (patch)
tree4c93c85f195721f4d89dd4d85b492d2670a4fe2a /gdb/regcache.h
parentaac0d564cea04b1c5f386e8cea924ca59057e8b4 (diff)
downloadgdb-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.h11
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;