octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Beyond 2.9.5


From: John W. Eaton
Subject: Re: Beyond 2.9.5
Date: Thu, 13 Apr 2006 09:13:31 -0400

On 12-Apr-2006, I wrote:

| On  4-Apr-2006, David Bateman wrote:
| 
| | For the changes for the octave_value class I'm not sure I see what we
| | are winning.
| 
| The change is not absolutely necessary (things work now) but it seems
| like a somewhat cleaner way of doing things.  Given that the necessary
| changes to user-defined types are relatively small, I think I'd like
| to go ahead with this change.

I checked in a relatively large patch for this change.  I'm attaching
the changes I needed to adapt Octave Forge.  I used some #defines to
preserve compatibility with older versions of Octave.

Note that the definition of OV_REP_TYPE is meant to be temporary, so
when Octave Forge is cleaned for 3.0 it should be replaced by
octave_base_value and the definition removed from octave/ov.h.

jwe

Index: extra/linear-algebra/ov-re-tri.cc
===================================================================
RCS file: /cvsroot/octave/octave-forge/extra/linear-algebra/ov-re-tri.cc,v
retrieving revision 1.7
diff -u -r1.7 ov-re-tri.cc
--- extra/linear-algebra/ov-re-tri.cc   25 May 2005 03:43:38 -0000      1.7
+++ extra/linear-algebra/ov-re-tri.cc   13 Apr 2006 13:03:51 -0000
@@ -26,28 +26,28 @@
 {
 }
 
-octave_value *octave_tri::clone(void) const
+OV_REP_TYPE *octave_tri::clone(void) const
 {
   return new octave_tri(*this);
 }
 
-static octave_value *
-tri_numeric_conversion_function(const octave_value& a)
+static OV_REP_TYPE *
+tri_numeric_conversion_function(const OV_REP_TYPE& a)
 {
   CAST_CONV_ARG (const octave_tri &);
   
   return new octave_matrix (v.matrix_value());
 }
 
-type_conv_fcn
+TYPE_CONV_FCN
 octave_tri::numeric_conversion_function (void) const
 {
   return tri_numeric_conversion_function;
 }
 
-octave_value * octave_tri::try_narrowing_conversion(void)
+OV_REP_TYPE * octave_tri::try_narrowing_conversion(void)
 {
-  octave_value *retval = octave_matrix::try_narrowing_conversion();
+  OV_REP_TYPE *retval = octave_matrix::try_narrowing_conversion();
 
   if ( retval==0){
     int nr = matrix.rows ();
Index: extra/linear-algebra/ov-re-tri.h
===================================================================
RCS file: /cvsroot/octave/octave-forge/extra/linear-algebra/ov-re-tri.h,v
retrieving revision 1.4
diff -u -r1.4 ov-re-tri.h
--- extra/linear-algebra/ov-re-tri.h    23 Nov 2003 14:21:38 -0000      1.4
+++ extra/linear-algebra/ov-re-tri.h    13 Apr 2006 13:03:51 -0000
@@ -18,6 +18,13 @@
 #include <octave/symtab.h>
 #include <octave/variables.h>
 
+#ifdef OV_REP_TYPE
+#define TYPE_CONV_FCN OV_REP_TYPE::type_conv_fcn
+#else
+#define OV_REP_TYPE octave_value
+#define TYPE_CONV_FCN type_conv_fcn
+#endif
+
 class Octave_map;
 class octave_value_list;
 
@@ -38,10 +45,10 @@
    ~octave_tri(void);
    octave_tri (const octave_tri& D);
 
-   octave_value *clone (void) const;
+   OV_REP_TYPE *clone (void) const;
 
-   type_conv_fcn numeric_conversion_function (void) const;
-   octave_value * try_narrowing_conversion(void);
+   TYPE_CONV_FCN numeric_conversion_function (void) const;
+   OV_REP_TYPE * try_narrowing_conversion(void);
 
    inline tri_type tri_value(void) const { return tri;};
    void assign (const octave_value_list& idx, const Matrix& rhs);
Index: main/comm/ov-galois.cc
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/comm/ov-galois.cc,v
retrieving revision 1.13
diff -u -r1.13 ov-galois.cc
--- main/comm/ov-galois.cc      9 Nov 2004 23:34:49 -0000       1.13
+++ main/comm/ov-galois.cc      13 Apr 2006 13:03:51 -0000
@@ -27,10 +27,14 @@
 #endif
 
 #include <iostream>
+#include <octave/config.h>
 #include <octave/unwind-prot.h>
+#include <octave/pr-output.h>
 #include "galois.h"
 #include "ov-galois.h"
 
+extern int Vstruct_levels_to_print;
+
 #ifdef CLASS_HAS_LOAD_SAVE
 #include <octave/byte-swap.h>
 #include <octave/ls-oct-ascii.h>
Index: main/comm/ov-galois.h
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/comm/ov-galois.h,v
retrieving revision 1.7
diff -u -r1.7 ov-galois.h
--- main/comm/ov-galois.h       9 Nov 2004 23:34:49 -0000       1.7
+++ main/comm/ov-galois.h       13 Apr 2006 13:03:51 -0000
@@ -61,6 +61,10 @@
 #define __GALOIS_INDEX_OF_STR "index_of"
 #endif
 
+#ifndef OV_REP_TYPE
+#define OV_REP_TYPE octave_value
+#endif
+
 class octave_value_list;
 class tree_walker;
 
@@ -82,8 +86,8 @@
 
   ~octave_galois (void) { };
 
-  octave_value *clone (void) const { return new octave_galois (*this); }
-  octave_value *empty_clone (void) const { return new octave_galois (); }
+  OV_REP_TYPE *clone (void) const { return new octave_galois (*this); }
+  OV_REP_TYPE *empty_clone (void) const { return new octave_galois (); }
 
   octave_value subsref (const std::string SUBSREF_STRREF type,
                        const LIST<octave_value_list>& idx);
Index: main/fixed/ov-fixed-complex.cc
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/fixed/ov-fixed-complex.cc,v
retrieving revision 1.4
diff -u -r1.4 ov-fixed-complex.cc
--- main/fixed/ov-fixed-complex.cc      9 Nov 2004 23:34:49 -0000       1.4
+++ main/fixed/ov-fixed-complex.cc      13 Apr 2006 13:03:51 -0000
@@ -204,10 +204,10 @@
   return retval;
 }
 
-octave_value *
+OV_REP_TYPE *
 octave_fixed_complex::try_narrowing_conversion (void)
 {
-  octave_value *retval = 0;
+  OV_REP_TYPE *retval = 0;
 
   if (imag (scalar) == FixedPoint())
     retval = new octave_fixed (real (scalar));
Index: main/fixed/ov-fixed-complex.h
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/fixed/ov-fixed-complex.h,v
retrieving revision 1.5
diff -u -r1.5 ov-fixed-complex.h
--- main/fixed/ov-fixed-complex.h       12 Feb 2006 07:15:28 -0000      1.5
+++ main/fixed/ov-fixed-complex.h       13 Apr 2006 13:03:51 -0000
@@ -60,6 +60,10 @@
 #include "fixedComplex.h"
 #include "ov-fixed.h"
 
+#ifndef OV_REP_TYPE
+#define OV_REP_TYPE octave_value
+#endif
+
 class Octave_map;
 class octave_value_list;
 
@@ -115,11 +119,11 @@
 
   bool is_true (void) const { return (scalar != FixedPointComplex()); }
 
-  octave_value *clone (void) const { return new octave_fixed_complex (*this); }
-  octave_value *empty_clone (void) const 
+  OV_REP_TYPE *clone (void) const { return new octave_fixed_complex (*this); }
+  OV_REP_TYPE *empty_clone (void) const 
                      { return new octave_fixed_complex (); }
 
-  octave_value *try_narrowing_conversion (void);
+  OV_REP_TYPE *try_narrowing_conversion (void);
 
   octave_value do_index_op (const octave_value_list& idx, int resize_ok = 0);
 
Index: main/fixed/ov-fixed-cx-mat.cc
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/fixed/ov-fixed-cx-mat.cc,v
retrieving revision 1.5
diff -u -r1.5 ov-fixed-cx-mat.cc
--- main/fixed/ov-fixed-cx-mat.cc       9 Nov 2004 23:34:49 -0000       1.5
+++ main/fixed/ov-fixed-cx-mat.cc       13 Apr 2006 13:03:51 -0000
@@ -318,10 +318,10 @@
   return retval;
 }
 
-octave_value *
+OV_REP_TYPE *
 octave_fixed_complex_matrix::try_narrowing_conversion (void)
 {
-  octave_value *retval = 0;
+  OV_REP_TYPE *retval = 0;
 
   int nr = matrix.rows ();
   int nc = matrix.cols ();
Index: main/fixed/ov-fixed-cx-mat.h
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/fixed/ov-fixed-cx-mat.h,v
retrieving revision 1.4
diff -u -r1.4 ov-fixed-cx-mat.h
--- main/fixed/ov-fixed-cx-mat.h        9 Nov 2004 23:34:49 -0000       1.4
+++ main/fixed/ov-fixed-cx-mat.h        13 Apr 2006 13:03:51 -0000
@@ -48,6 +48,10 @@
 #include "fixedCColVector.h"
 #include "fixedCMatrix.h"
 
+#ifndef OV_REP_TYPE
+#define OV_REP_TYPE octave_value
+#endif
+
 class Octave_map;
 class octave_value_list;
 
@@ -83,8 +87,8 @@
 
   ~octave_fixed_complex_matrix (void) { }
 
-  octave_value *clone (void) const { return new octave_fixed_complex_matrix 
(*this); }
-  octave_value *empty_clone (void) const { return new 
octave_fixed_complex_matrix (); }
+  OV_REP_TYPE *clone (void) const { return new octave_fixed_complex_matrix 
(*this); }
+  OV_REP_TYPE *empty_clone (void) const { return new 
octave_fixed_complex_matrix (); }
 
   octave_value do_index_op (const octave_value_list& idx)
     { return do_index_op (idx, 0); }
@@ -96,7 +100,7 @@
                         const std::list<octave_value_list>& idx,
                         const octave_value& rhs);
 
-  octave_value *try_narrowing_conversion (void);
+  OV_REP_TYPE *try_narrowing_conversion (void);
 
   bool is_complex_matrix (void) const { return true; }
 
Index: main/fixed/ov-fixed-mat.cc
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/fixed/ov-fixed-mat.cc,v
retrieving revision 1.6
diff -u -r1.6 ov-fixed-mat.cc
--- main/fixed/ov-fixed-mat.cc  9 Nov 2004 23:34:49 -0000       1.6
+++ main/fixed/ov-fixed-mat.cc  13 Apr 2006 13:03:52 -0000
@@ -290,10 +290,10 @@
   return retval;
 }
 
-octave_value *
+OV_REP_TYPE *
 octave_fixed_matrix::try_narrowing_conversion (void)
 {
-  octave_value *retval = 0;
+  OV_REP_TYPE *retval = 0;
 
   int nr = matrix.rows ();
   int nc = matrix.cols ();
Index: main/fixed/ov-fixed-mat.h
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/fixed/ov-fixed-mat.h,v
retrieving revision 1.4
diff -u -r1.4 ov-fixed-mat.h
--- main/fixed/ov-fixed-mat.h   9 Nov 2004 23:34:49 -0000       1.4
+++ main/fixed/ov-fixed-mat.h   13 Apr 2006 13:03:52 -0000
@@ -55,6 +55,10 @@
 #include "fixedMatrix.h"
 #include "fixedCMatrix.h"
 
+#ifndef OV_REP_TYPE
+#define OV_REP_TYPE octave_value
+#endif
+
 class Octave_map;
 class octave_value_list;
 
@@ -84,8 +88,8 @@
 
   ~octave_fixed_matrix (void) { }
 
-  octave_value *clone (void) const { return new octave_fixed_matrix (*this); }
-  octave_value *empty_clone (void) const { return new octave_fixed_matrix (); }
+  OV_REP_TYPE *clone (void) const { return new octave_fixed_matrix (*this); }
+  OV_REP_TYPE *empty_clone (void) const { return new octave_fixed_matrix (); }
 
   octave_value do_index_op (const octave_value_list& idx)
     { return do_index_op (idx, 0); }
@@ -97,7 +101,7 @@
                         const std::list<octave_value_list>& idx,
                         const octave_value& rhs);
 
-  octave_value *try_narrowing_conversion (void);
+  OV_REP_TYPE *try_narrowing_conversion (void);
 
   bool is_real_matrix (void) const { return true; }
 
Index: main/fixed/ov-fixed.h
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/fixed/ov-fixed.h,v
retrieving revision 1.4
diff -u -r1.4 ov-fixed.h
--- main/fixed/ov-fixed.h       9 Nov 2004 23:34:49 -0000       1.4
+++ main/fixed/ov-fixed.h       13 Apr 2006 13:03:52 -0000
@@ -56,6 +56,10 @@
 #include "fixedComplex.h"
 #include "fixedCMatrix.h"
 
+#ifndef OV_REP_TYPE
+#define OV_REP_TYPE octave_value
+#endif
+
 class Octave_map;
 class octave_value_list;
 
@@ -101,8 +105,8 @@
 
   bool is_real_type (void) const { return true; }
 
-  octave_value *clone (void) const { return new octave_fixed (*this); }
-  octave_value *empty_clone (void) const { return new octave_fixed (); }
+  OV_REP_TYPE *clone (void) const { return new octave_fixed (*this); }
+  OV_REP_TYPE *empty_clone (void) const { return new octave_fixed (); }
 
   octave_value do_index_op (const octave_value_list& idx, int resize_ok = 0);
   idx_vector index_vector (void) const 
Index: main/miscellaneous/Makefile
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/miscellaneous/Makefile,v
retrieving revision 1.20
diff -u -r1.20 Makefile
--- main/miscellaneous/Makefile 29 Mar 2006 13:50:14 -0000      1.20
+++ main/miscellaneous/Makefile 13 Apr 2006 13:03:52 -0000
@@ -5,7 +5,7 @@
 endif
 
 DISPATCH_LINK=$(patsubst %,%$(OCTLINK), dispatch_help builtin)
-TARGETS=mfilename.oct waitbar.oct listen.oct xmlread.oct \
+TARGETS=waitbar.oct listen.oct xmlread.oct \
        csvexplode.oct csv2cell.oct csvconcat.oct cell2csv.oct
 
 all:   $(TARGETS)
@@ -14,9 +14,6 @@
        -$(RM) $@
        $(MKOCTLINK) dispatch.oct $@
 
-mfilename.oct: mfilename.cc
-       $(MKOCTFILE) $(MISCDEFS) mfilename.cc
-
 waitbar.oct:   waitbar.cc
        $(MKOCTFILE) $(MISCDEFS) waitbar.cc $(TERM_LIB)
 
Index: main/octcdf/ov-ncatt.cc
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-ncatt.cc,v
retrieving revision 1.3
diff -u -r1.3 ov-ncatt.cc
--- main/octcdf/ov-ncatt.cc     9 Jan 2006 21:02:37 -0000       1.3
+++ main/octcdf/ov-ncatt.cc     13 Apr 2006 13:03:52 -0000
@@ -172,7 +172,12 @@
 
   ov_nc_put_att(get_ncid(),get_varid(),get_name(),get_nctype(),rhs);
 
+#ifdef OV_REP_TYPE
+  count++;
+  retval = octave_value(this);
+#else
   retval = octave_value(this, count + 1);
+#endif
 
   return retval;
 
Index: main/octcdf/ov-ncatt.h
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-ncatt.h,v
retrieving revision 1.3
diff -u -r1.3 ov-ncatt.h
--- main/octcdf/ov-ncatt.h      18 Feb 2006 22:06:27 -0000      1.3
+++ main/octcdf/ov-ncatt.h      13 Apr 2006 13:03:52 -0000
@@ -22,6 +22,10 @@
 
 #include "ov-netcdf.h"
 
+#ifndef OV_REP_TYPE
+#define OV_REP_TYPE octave_value
+#endif
+
 typedef struct {
   nc_type nctype;
   dim_vector dimvec;
@@ -43,7 +47,7 @@
   octave_ncatt(octave_ncfile* ncvarp, int attnump);
   octave_ncatt(octave_ncfile* ncvarp, std::string attnamep);
 
-  octave_value *clone(void) const { return new octave_ncatt(*this); }
+  OV_REP_TYPE *clone(void) const { return new octave_ncatt(*this); }
 
   octave_value subsasgn(const std::string & type,
                        const LIST < octave_value_list > &idx,
Index: main/octcdf/ov-ncdim.cc
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-ncdim.cc,v
retrieving revision 1.3
diff -u -r1.3 ov-ncdim.cc
--- main/octcdf/ov-ncdim.cc     9 Jan 2006 21:02:37 -0000       1.3
+++ main/octcdf/ov-ncdim.cc     13 Apr 2006 13:03:52 -0000
@@ -75,7 +75,12 @@
 // # endif
 
 
+// #ifdef OV_REP_TYPE
+//   //  count++;
+//   //  retval = octave_value(this);
+// #else
 //   //  retval = octave_value(this, count + 1);
+// #endif
 
 //   return retval;
 
Index: main/octcdf/ov-ncdim.h
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-ncdim.h,v
retrieving revision 1.3
diff -u -r1.3 ov-ncdim.h
--- main/octcdf/ov-ncdim.h      18 Feb 2006 22:06:27 -0000      1.3
+++ main/octcdf/ov-ncdim.h      13 Apr 2006 13:03:52 -0000
@@ -22,6 +22,10 @@
 
 #include "ov-netcdf.h"
 
+#ifndef OV_REP_TYPE
+#define OV_REP_TYPE octave_value
+#endif
+
 typedef struct {
   octave_ncfile* ncfile;
   std::string dimname;
@@ -39,7 +43,7 @@
 
   octave_ncdim(octave_ncfile* ncfile, int dimid);
 
-  octave_value *clone(void) const { return new octave_ncdim(*this); }
+  OV_REP_TYPE *clone(void) const { return new octave_ncdim(*this); }
 
 //   octave_value subsasgn(const std::string & type,
 //                     const LIST < octave_value_list > &idx,
Index: main/octcdf/ov-ncfile.cc
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-ncfile.cc,v
retrieving revision 1.3
diff -u -r1.3 ov-ncfile.cc
--- main/octcdf/ov-ncfile.cc    9 Jan 2006 21:02:37 -0000       1.3
+++ main/octcdf/ov-ncfile.cc    13 Apr 2006 13:03:52 -0000
@@ -284,7 +284,13 @@
 
   read_info();
 
+#ifdef OV_REP_TYPE
+  count++;
+  retval = octave_value(this);
+#else
   retval = octave_value(this, count + 1);
+#endif
+
   return retval;
 
 
Index: main/octcdf/ov-ncfile.h
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-ncfile.h,v
retrieving revision 1.2
diff -u -r1.2 ov-ncfile.h
--- main/octcdf/ov-ncfile.h     9 Jan 2006 21:02:37 -0000       1.2
+++ main/octcdf/ov-ncfile.h     13 Apr 2006 13:03:52 -0000
@@ -23,6 +23,9 @@
 
 #include "ov-netcdf.h"
 
+#ifndef OV_REP_TYPE
+#define OV_REP_TYPE octave_value
+#endif
 
 typedef struct {
   int ncid;
@@ -40,7 +43,7 @@
 
   octave_ncfile(string filenamep, string open_mode);
 
-  octave_value *clone(void) const { return new octave_ncfile(*this); }
+  OV_REP_TYPE *clone(void) const { return new octave_ncfile(*this); }
 
 // x.v = y     x(idx).v = y     x{idx}.v = y
 
Index: main/octcdf/ov-ncvar.cc
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-ncvar.cc,v
retrieving revision 1.5
diff -u -r1.5 ov-ncvar.cc
--- main/octcdf/ov-ncvar.cc     10 Feb 2006 23:13:33 -0000      1.5
+++ main/octcdf/ov-ncvar.cc     13 Apr 2006 13:03:52 -0000
@@ -232,7 +232,12 @@
   // update characteristics
   read_info();
 
+#ifdef OV_REP_TYPE
+  count++;
+  retval = octave_value(this);
+#else
   retval = octave_value(this, count + 1);
+#endif
 
   return retval;
 };
Index: main/octcdf/ov-ncvar.h
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-ncvar.h,v
retrieving revision 1.5
diff -u -r1.5 ov-ncvar.h
--- main/octcdf/ov-ncvar.h      18 Feb 2006 22:06:27 -0000      1.5
+++ main/octcdf/ov-ncvar.h      13 Apr 2006 13:03:52 -0000
@@ -22,6 +22,10 @@
 
 #include "ov-netcdf.h"
 
+#ifndef OV_REP_TYPE
+#define OV_REP_TYPE octave_value
+#endif
+
 typedef struct {
   std::list<std::string> dimnames;
   int dimids[NC_MAX_VAR_DIMS];
@@ -55,7 +59,7 @@
 
   octave_ncvar(nc_type nctypep, std::list <std::string> 
dimnamesp):octave_base_value(), ncv(NULL) { }
 
-  octave_value *clone(void) const { return new octave_ncvar(*this); }
+  OV_REP_TYPE *clone(void) const { return new octave_ncvar(*this); }
 
 // x.v = y     x(idx).v = y     x{idx}.v = y
 
Index: main/symbolic/ov-ex-mat.h
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/symbolic/ov-ex-mat.h,v
retrieving revision 1.4
diff -u -r1.4 ov-ex-mat.h
--- main/symbolic/ov-ex-mat.h   17 Nov 2003 17:04:40 -0000      1.4
+++ main/symbolic/ov-ex-mat.h   13 Apr 2006 13:03:52 -0000
@@ -23,6 +23,10 @@
 
 #include <ginac/ginac.h>
 
+#ifndef OV_REP_TYPE
+#define OV_REP_TYPE octave_value
+#endif
+
 class octave_matrix;
 class octave_complex_matrix;
 
@@ -55,7 +59,7 @@
       return GiNaC::ex(x);
     }
   
-  octave_value *clone (void) 
+  OV_REP_TYPE *clone (void) 
     { 
       return new octave_ex_matrix (*this); 
     }
Index: main/symbolic/ov-ex.h
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/symbolic/ov-ex.h,v
retrieving revision 1.7
diff -u -r1.7 ov-ex.h
--- main/symbolic/ov-ex.h       17 Nov 2003 17:04:40 -0000      1.7
+++ main/symbolic/ov-ex.h       13 Apr 2006 13:03:52 -0000
@@ -27,6 +27,9 @@
 #include <octave/ov-scalar.h>
 #include "ov-vpa.h"
 
+#ifndef OV_REP_TYPE
+#define OV_REP_TYPE octave_value
+#endif
 
 class octave_complex;
 class octave_scalar;
@@ -54,7 +57,7 @@
       return x;
     }
   
-  octave_value *clone (void) 
+  OV_REP_TYPE *clone (void) 
     { 
       return new octave_ex (*this); 
     }
Index: main/symbolic/ov-relational.h
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/symbolic/ov-relational.h,v
retrieving revision 1.4
diff -u -r1.4 ov-relational.h
--- main/symbolic/ov-relational.h       17 Nov 2003 17:04:41 -0000      1.4
+++ main/symbolic/ov-relational.h       13 Apr 2006 13:03:52 -0000
@@ -26,6 +26,10 @@
 #include <octave/ov-base.h>
 #include "ov-ex.h"
 
+#ifndef OV_REP_TYPE
+#define OV_REP_TYPE octave_value
+#endif
+
 // relational values.
 
 class
@@ -55,7 +59,7 @@
 
   ~octave_relational (void) { }
 
-  octave_value *clone (void) { return new octave_relational (*this); }
+  OV_REP_TYPE *clone (void) { return new octave_relational (*this); }
 
 #ifdef HAVE_ND_ARRAYS
   dim_vector dims (void) const { static dim_vector dv (1, 1); return dv; }
Index: main/symbolic/ov-vpa.h
===================================================================
RCS file: /cvsroot/octave/octave-forge/main/symbolic/ov-vpa.h,v
retrieving revision 1.5
diff -u -r1.5 ov-vpa.h
--- main/symbolic/ov-vpa.h      17 Nov 2003 17:04:41 -0000      1.5
+++ main/symbolic/ov-vpa.h      13 Apr 2006 13:03:52 -0000
@@ -25,6 +25,10 @@
 #include <ginac/ginac.h>
 #include <octave/ov-base.h>
 
+#ifndef OV_REP_TYPE
+#define OV_REP_TYPE octave_value
+#endif
+
 // vpa values.
 
 class
@@ -40,7 +44,7 @@
 
   ~octave_vpa (void) { }
 
-  octave_value *clone (void) { return new octave_vpa (*this); }
+  OV_REP_TYPE *clone (void) { return new octave_vpa (*this); }
 
 #if 0
   void *operator new (size_t size);
Index: nonfree/gpc/octave-gpc.h
===================================================================
RCS file: /cvsroot/octave/octave-forge/nonfree/gpc/octave-gpc.h,v
retrieving revision 1.3
diff -u -r1.3 octave-gpc.h
--- nonfree/gpc/octave-gpc.h    5 Jan 2004 21:20:01 -0000       1.3
+++ nonfree/gpc/octave-gpc.h    13 Apr 2006 13:03:52 -0000
@@ -29,6 +29,10 @@
 #include <gpcl/gpc.h>
 }
 
+#ifndef OV_REP_TYPE
+#define OV_REP_TYPE octave_value
+#endif
+
 void octave_gpc_free_polygon (gpc_polygon*);
 
 gpc_polygon* get_gpc_pt (octave_value);
@@ -62,7 +66,7 @@
 
   ~octave_gpc_polygon (void) { octave_gpc_free_polygon (polygon); }
 
-  octave_value* clone (void) { return new octave_gpc_polygon (*this); }
+  OV_REP_TYPE* clone (void) { return new octave_gpc_polygon (*this); }
 
   bool is_defined (void) const { return true; }
 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]