changeset 32436:2922ecf94062

Fill memory leak in bytecode interpreter Loose new after refactoring of original patch * pt-bytecode-vm.cc: Don't use new
author Petter T.
date Fri, 27 Oct 2023 18:19:05 +0200
parents c082a1a49c7d
children fcc5a0b0e564
files libinterp/parse-tree/pt-bytecode-vm.cc
diffstat 1 files changed, 5 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/parse-tree/pt-bytecode-vm.cc	Fri Oct 27 18:18:52 2023 +0200
+++ b/libinterp/parse-tree/pt-bytecode-vm.cc	Fri Oct 27 18:19:05 2023 +0200
@@ -5678,19 +5678,20 @@
 
     int n_ignored = arg0;
     int n_total = POP_CODE ();
-    auto *M = new Matrix {};
-    M->resize (1, n_ignored);
+
+    Matrix M;
+    M.resize (1, n_ignored);
 
     std::set<int> set_ignored;
 
     for (int i = 0; i < n_ignored; i++)
       {
         int ignore_idx = POP_CODE ();
-        (*M) (i) = ignore_idx;
+        M (i) = ignore_idx;
         set_ignored.insert (ignore_idx);
       }
 
-    octave_value ignore_matrix {*M};
+    octave_value ignore_matrix {M};
 
     // For calls into m-functions etc
     auto *new_lvalue_list = new std::list<octave_lvalue> {};