Mercurial > jwe > octave
changeset 21448:06a2f9245a11
avoid possible memory leak in idx_vector_rep constructor (bug #47372)
* idx-vector.cc (idx_vector::idx_vector_rep::idx_vector_rep):
Wrap pointer to allocated memory in std::unique_vector object.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 14 Mar 2016 23:12:22 -0400 |
parents | ac1e50cfc9ed |
children | 65e24ba4ca2d |
files | liboctave/array/idx-vector.cc |
diffstat | 1 files changed, 3 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/liboctave/array/idx-vector.cc Mon Mar 14 23:10:53 2016 -0400 +++ b/liboctave/array/idx-vector.cc Mon Mar 14 23:12:22 2016 -0400 @@ -303,13 +303,12 @@ { if (len != 0) { - octave_idx_type *d = new octave_idx_type [len]; + std::unique_ptr<octave_idx_type []> d (new octave_idx_type [len]); + for (octave_idx_type i = 0; i < len; i++) d[i] = convert_index (nda.xelem (i), err, ext); - data = d; - if (err) - delete [] data; + data = d.release (); } }