view src/of-nurbs-2-dev-fixes.patch @ 5579:2734b3818171

Avoid double-free with librsb (bug #58957). * src/librsb.mk: Add work-around to avoid double-free (provided by Michele Martone). * src/mingw-of-sparsersb-1-no-render.patch: Remove patch. * dist-files.mk: Remove file from list.
author Markus Mützel <markus.muetzel@gmx.de>
date Mon, 02 Nov 2020 08:55:18 +0100
parents fa3095a87fa7
children
line wrap: on
line source

diff -ur nurbs-1.3.13.orig/src/bspeval.cc nurbs-1.3.13/src/bspeval.cc
--- nurbs-1.3.13.orig/src/bspeval.cc	2019-01-02 14:26:02.941385714 -0500
+++ nurbs-1.3.13/src/bspeval.cc	2019-01-02 14:27:40.507737151 -0500
@@ -113,7 +113,7 @@
       error("bspeval: the knot vector should be a real vector."); 
       return true; 
     } 
-  if (!args(3).is_real_type()) 
+  if (!args(3).isreal()) 
     { 
       error("bspeval: the set of parametric points should be an array of doubles."); 
       return true; 
diff -ur nurbs-1.3.13.orig/src/tbasisfun.cc nurbs-1.3.13/src/tbasisfun.cc
--- nurbs-1.3.13.orig/src/tbasisfun.cc	2019-01-02 14:26:02.941385714 -0500
+++ nurbs-1.3.13/src/tbasisfun.cc	2019-01-02 14:27:54.744080103 -0500
@@ -156,7 +156,7 @@
   RowVector N(u.cols ());
   double *Nptr = N.fortran_vec ();
 
-  if (! args(2).is_cell ())
+  if (! args(2).iscell ())
     {
 
       double p = args(1).idx_type_value ();
diff -ur nurbs-1.3.13.orig/src/nrb_srf_basisfun__.cc nurbs-1.3.13/src/nrb_srf_basisfun__.cc
--- nurbs-1.3.13.orig/src/nrb_srf_basisfun__.cc	2019-01-02 14:34:00.900891192 -0500
+++ nurbs-1.3.13/src/nrb_srf_basisfun__.cc	2019-01-02 14:34:46.781994244 -0500
@@ -66,7 +66,7 @@
 	} // spu  =  findspan (m, p, u, U); 
 
       newargs(3) = U; newargs(2) = p; newargs(1) = u; newargs(0) = spu;
-      Matrix Ik = feval (std::string("numbasisfun"), newargs, 1)(0).matrix_value (); // Ik = numbasisfun (spu, u, p, U);
+      Matrix Ik = octave::feval (std::string("numbasisfun"), newargs, 1)(0).matrix_value (); // Ik = numbasisfun (spu, u, p, U);
 
       RowVector spv(v);
       for (octave_idx_type ii(0); ii < v.numel (); ii++)
@@ -75,7 +75,7 @@
 	} // spv  =  findspan (n, q, v, V);
 
       newargs(3) = V; newargs(2) = q; newargs(1) = v; newargs(0) = spv;
-      Matrix Jk = feval (std::string("numbasisfun"), newargs, 1)(0).matrix_value (); // Jk = numbasisfun (spv, v, q, V);
+      Matrix Jk = octave::feval (std::string("numbasisfun"), newargs, 1)(0).matrix_value (); // Jk = numbasisfun (spv, v, q, V);
 
       Matrix NuIkuk(npt, p+1, 0.0);
       for (octave_idx_type ii(0); ii < npt; ii++)
diff -ur nurbs-1.3.13.orig/src/nrb_srf_basisfun_der__.cc nurbs-1.3.13/src/nrb_srf_basisfun_der__.cc
--- nurbs-1.3.13.orig/src/nrb_srf_basisfun_der__.cc	2019-01-02 14:34:00.900891192 -0500
+++ nurbs-1.3.13/src/nrb_srf_basisfun_der__.cc	2019-01-02 14:35:50.667529890 -0500
@@ -73,7 +73,7 @@
 	} // spu  =  findspan (m, p, u, U); 
 
       newargs(3) = U; newargs(2) = p; newargs(1) = u; newargs(0) = spu;
-      Matrix Ik = feval (std::string("numbasisfun"), newargs, 1)(0).matrix_value (); // Ik = numbasisfun (spu, u, p, U);
+      Matrix Ik = octave::feval (std::string("numbasisfun"), newargs, 1)(0).matrix_value (); // Ik = numbasisfun (spu, u, p, U);
 
       RowVector spv(v);
       for (octave_idx_type ii(0); ii < v.numel (); ii++)
@@ -82,7 +82,7 @@
 	} // spv  =  findspan (n, q, v, V);
 
       newargs(3) = V; newargs(2) = q; newargs(1) = v; newargs(0) = spv;
-      Matrix Jk = feval (std::string("numbasisfun"), newargs, 1)(0).matrix_value (); // Jk = numbasisfun (spv, v, q, V);
+      Matrix Jk = octave::feval (std::string("numbasisfun"), newargs, 1)(0).matrix_value (); // Jk = numbasisfun (spv, v, q, V);
 
       Matrix NuIkuk(npt, p+1, 0.0);
       for (octave_idx_type ii(0); ii < npt; ii++)
@@ -100,11 +100,11 @@
 
      
       newargs(4) = 1; newargs(3) = U; newargs(2) = u; newargs(1) = p; newargs(0) = spu;
-      NDArray NuIkukprime = feval (std::string("basisfunder"), newargs, 1)(0).array_value (); //   NuIkukprime = basisfunder (spu, p, u, U, 1);
+      NDArray NuIkukprime = octave::feval (std::string("basisfunder"), newargs, 1)(0).array_value (); //   NuIkukprime = basisfunder (spu, p, u, U, 1);
                                                                                               //   NuIkukprime = squeeze(NuJkukprime(:,2,:));
       
       newargs(4) = 1; newargs(3) = V; newargs(2) = v; newargs(1) = q; newargs(0) = spv;
-      NDArray NvJkvkprime = feval (std::string("basisfunder"), newargs, 1)(0).array_value (); //   NvJkvkprime = basisfunder (spv, q, v, V, 1);
+      NDArray NvJkvkprime = octave::feval (std::string("basisfunder"), newargs, 1)(0).array_value (); //   NvJkvkprime = basisfunder (spv, q, v, V, 1);
                                                                                               //   NvJkvkprime = squeeze(NvJkvkprime(:,2,:));
       
       for (octave_idx_type k(0); k < npt; k++)