# HG changeset patch
# User Daniel J Sebald
# Date 1457069723 21600
# Node ID 856939aa69e93280a93ddab37cf782279b4ee953
# Parent 309bba07a4f6acb8edc094942162889449434f31
Protect sparse length change from deleting NULL pointers
* Sparse.cc (Sparse::SparseRep::change_length): Test that pointers
r and d are non-zero before invoking delete on them.
diff --git a/liboctave/array/Sparse.cc b/liboctave/array/Sparse.cc
--- a/liboctave/array/Sparse.cc
+++ b/liboctave/array/Sparse.cc
@@ -164,13 +164,15 @@ Sparse::SparseRep::change_length (oct
octave_idx_type * new_ridx = new octave_idx_type [nz];
std::copy (r, r + min_nzmx, new_ridx);
- delete [] r;
+ if (r)
+ delete [] r;
r = new_ridx;
T * new_data = new T [nz];
std::copy (d, d + min_nzmx, new_data);
- delete [] d;
+ if (d)
+ delete [] d;
d = new_data;
nzmx = nz;
exporting patch: