Mercurial > mxe-octave
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++)