Update of /cvsroot/octave/octave-forge/main/octcdf In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27561 Modified Files: ov-netcdf.h ov-netcdf.cc ov-ncvar.h ov-ncvar.cc ov-ncfile.h ov-ncfile.cc ov-ncdim.h ov-ncdim.cc ov-ncatt.h ov-ncatt.cc Log Message: Centralize definition of OV_REP_TYPE in ov-netcdf.h and fix bug in return value of subsasgn. Index: ov-ncdim.cc =================================================================== RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-ncdim.cc,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ov-ncdim.cc 13 Apr 2006 21:21:12 -0000 1.4 +++ ov-ncdim.cc 2 May 2006 14:23:09 -0000 1.5 @@ -74,17 +74,12 @@ // octave_stdout << "setting attribute value " << std::endl; // # endif - -// #ifdef OV_REP_TYPE -// // count++; -// // retval = octave_value(this); -// #else -// // retval = octave_value(this, count + 1); -// #endif - +// # ifdef OCTAVE_VALUE_COUNT_CONSTRUCTOR +// retval = octave_value(this, count + 1); +// # else +// retval = octave_value(clone()); +// # endif // return retval; - - // }; // ncdim_var(:) Index: ov-ncvar.h =================================================================== RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-ncvar.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- ov-ncvar.h 19 Apr 2006 19:05:39 -0000 1.7 +++ ov-ncvar.h 2 May 2006 14:23:09 -0000 1.8 @@ -22,10 +22,6 @@ #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]; Index: ov-ncfile.h =================================================================== RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-ncfile.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ov-ncfile.h 13 Apr 2006 21:21:12 -0000 1.3 +++ ov-ncfile.h 2 May 2006 14:23:09 -0000 1.4 @@ -23,10 +23,6 @@ #include "ov-netcdf.h" -#ifndef OV_REP_TYPE -#define OV_REP_TYPE octave_value -#endif - typedef struct { int ncid; std::string filename; Index: ov-ncvar.cc =================================================================== RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-ncvar.cc,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- ov-ncvar.cc 19 Apr 2006 19:05:39 -0000 1.7 +++ ov-ncvar.cc 2 May 2006 14:23:09 -0000 1.8 @@ -262,12 +262,11 @@ // update characteristics read_info(); -#ifdef OV_REP_TYPE - count++; - retval = octave_value(this); -#else +# ifdef OCTAVE_VALUE_COUNT_CONSTRUCTOR retval = octave_value(this, count + 1); -#endif +# else + retval = octave_value(clone()); +# endif return retval; }; Index: ov-netcdf.h =================================================================== RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-netcdf.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ov-netcdf.h 19 Apr 2006 19:06:51 -0000 1.4 +++ ov-netcdf.h 2 May 2006 14:23:09 -0000 1.5 @@ -76,6 +76,13 @@ #define OCTAVE_PERMVEC_ZEROBASED #endif + +#ifndef OV_REP_TYPE +#define OV_REP_TYPE octave_value +#endif + +//#define OCTAVE_VALUE_COUNT_CONSTRUCTOR + using namespace std; Index: ov-ncatt.cc =================================================================== RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-ncatt.cc,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ov-ncatt.cc 13 Apr 2006 21:21:12 -0000 1.4 +++ ov-ncatt.cc 2 May 2006 14:23:09 -0000 1.5 @@ -153,8 +153,8 @@ // ncatt_var(:) = y octave_value octave_ncatt::subsasgn(const std::string & type, - const LIST < octave_value_list > &idx, - const octave_value & rhs) + const LIST < octave_value_list > &idx, + const octave_value & rhs) { int status; octave_value retval; @@ -172,12 +172,11 @@ ov_nc_put_att(get_ncid(),get_varid(),get_name(),get_nctype(),rhs); -#ifdef OV_REP_TYPE - count++; - retval = octave_value(this); -#else +# ifdef OCTAVE_VALUE_COUNT_CONSTRUCTOR retval = octave_value(this, count + 1); -#endif +# else + retval = octave_value(clone()); +# endif return retval; Index: ov-ncatt.h =================================================================== RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-ncatt.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ov-ncatt.h 13 Apr 2006 21:21:12 -0000 1.4 +++ ov-ncatt.h 2 May 2006 14:23:09 -0000 1.5 @@ -22,10 +22,6 @@ #include "ov-netcdf.h" -#ifndef OV_REP_TYPE -#define OV_REP_TYPE octave_value -#endif - typedef struct { nc_type nctype; dim_vector dimvec; Index: ov-ncdim.h =================================================================== RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-ncdim.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ov-ncdim.h 13 Apr 2006 21:21:12 -0000 1.4 +++ ov-ncdim.h 2 May 2006 14:23:09 -0000 1.5 @@ -22,10 +22,6 @@ #include "ov-netcdf.h" -#ifndef OV_REP_TYPE -#define OV_REP_TYPE octave_value -#endif - typedef struct { octave_ncfile* ncfile; std::string dimname; Index: ov-netcdf.cc =================================================================== RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-netcdf.cc,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- ov-netcdf.cc 19 Apr 2006 19:05:39 -0000 1.5 +++ ov-netcdf.cc 2 May 2006 14:23:09 -0000 1.6 @@ -148,6 +148,10 @@ return octave_value(); } +# ifdef OV_NETCDF_VERBOSE + octave_stdout << "close file " << std::endl; +# endif + if (args(0).class_name() == "ncfile") { octave_ncfile& ncfile = (octave_ncfile&)args(0).get_rep(); ncfile.close(); Index: ov-ncfile.cc =================================================================== RCS file: /cvsroot/octave/octave-forge/main/octcdf/ov-ncfile.cc,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ov-ncfile.cc 13 Apr 2006 21:21:12 -0000 1.4 +++ ov-ncfile.cc 2 May 2006 14:23:09 -0000 1.5 @@ -284,12 +284,14 @@ read_info(); -#ifdef OV_REP_TYPE - count++; - retval = octave_value(this); -#else + // result of this assignement is the same + // octave_ncfile object + +# ifdef OCTAVE_VALUE_COUNT_CONSTRUCTOR retval = octave_value(this, count + 1); -#endif +# else + retval = octave_value(clone()); +# endif return retval; |