diff liboctave/DASRT.cc @ 11502:4638800cd660

delete data pointer members from liboctave ODE/DAE classes; make destuctors virtual in ODE/DAE base classes
author John W. Eaton <jwe@octave.org>
date Thu, 13 Jan 2011 03:16:40 -0500
parents 8a5e980da6aa
children fd0a3ac60b0e
line wrap: on
line diff
--- a/liboctave/DASRT.cc	Thu Jan 13 03:04:51 2011 -0500
+++ b/liboctave/DASRT.cc	Thu Jan 13 03:16:40 2011 -0500
@@ -171,8 +171,6 @@
       for (octave_idx_type i = 0; i < 15; i++)
         info(i) = 0;
 
-      pinfo = info.fortran_vec ();
-
       octave_idx_type n = size ();
 
       nn = n;
@@ -222,12 +220,6 @@
       else
         info(3) = 0;
 
-      px = x.fortran_vec ();
-      pxdot = xdot.fortran_vec ();
-
-      piwork = iwork.fortran_vec ();
-      prwork = rwork.fortran_vec ();
-
       restart = false;
 
       // DAEFunc
@@ -265,8 +257,6 @@
 
       jroot.resize (ng, 1, 1);
 
-      pjroot = jroot.fortran_vec ();
-
       DAERTFunc::reset = false;
 
       // DASRT_options
@@ -320,14 +310,24 @@
           return;
         }
 
-      pabs_tol = abs_tol.fortran_vec ();
-      prel_tol = rel_tol.fortran_vec ();
-
       DASRT_options::reset = false;
     }
 
-  static double *dummy = 0;
-  static octave_idx_type *idummy = 0;
+  double *px = x.fortran_vec ();
+  double *pxdot = xdot.fortran_vec ();
+
+  octave_idx_type *pinfo = info.fortran_vec ();
+
+  double *prel_tol = rel_tol.fortran_vec ();
+  double *pabs_tol = abs_tol.fortran_vec ();
+
+  double *prwork = rwork.fortran_vec ();
+  octave_idx_type *piwork = iwork.fortran_vec ();
+
+  octave_idx_type *pjroot = jroot.fortran_vec ();
+
+  double *dummy = 0;
+  octave_idx_type *idummy = 0;
 
   F77_XFCN (ddasrt, DDASRT, (ddasrt_f, nn, t, px, pxdot, tout, pinfo,
                              prel_tol, pabs_tol, istate, prwork, lrw,