The following commit has been merged in the master branch:
commit 32dcf340bd2fd1f3eee2fdd245d3745e67a6c181
Author: Andrei Zavada <[email protected]>
Date:   Sun Jul 14 00:39:06 2013 +0300

    CSource::put_region_smpl() are not const, obviously

diff --git a/src/libsigfile/edf-io.cc b/src/libsigfile/edf-io.cc
index 3adc071..2e369b7 100644
--- a/src/libsigfile/edf-io.cc
+++ b/src/libsigfile/edf-io.cc
@@ -69,7 +69,7 @@ int
 CEDFFile::
 put_region_smpl( const int h,
                 const valarray<TFloat>& src,
-                const size_t offset) const
+                const size_t offset)
 {
        if ( unlikely (_status & (TStatus::bad_header | TStatus::bad_version)) )
                throw invalid_argument("CEDFFile::put_region_(): broken 
source");
diff --git a/src/libsigfile/edf.hh b/src/libsigfile/edf.hh
index d28164d..a223b2e 100644
--- a/src/libsigfile/edf.hh
+++ b/src/libsigfile/edf.hh
@@ -204,13 +204,13 @@ class CEDFFile
 
       // put signal
        int
-       put_region_smpl( int, const valarray<TFloat>&, size_t) const;
+       put_region_smpl( int, const valarray<TFloat>&, size_t);
        int
-       put_region_sec( const int h, const valarray<TFloat>& src, const float 
offset) const
+       put_region_sec( const int h, const valarray<TFloat>& src, const float 
offset)
                { return put_region_smpl( h, src, (size_t)(offset * 
samplerate(h))); }
 
        int
-       put_signal( const int h, const valarray<TFloat>& src) const
+       put_signal( const int h, const valarray<TFloat>& src)
                { return put_region_smpl( h, src, 0); }
 
       // signal data info
diff --git a/src/libsigfile/source-base.hh b/src/libsigfile/source-base.hh
index c35bc5a..b39c513 100644
--- a/src/libsigfile/source-base.hh
+++ b/src/libsigfile/source-base.hh
@@ -386,9 +386,9 @@ class CSource {
 
       // put samples
        virtual int
-       put_region_smpl( int, const valarray<TFloat>&, size_t) const = 0;
+       put_region_smpl( int, const valarray<TFloat>&, size_t) = 0;
 
-       int put_region_sec( const int h, const valarray<TFloat>& src, const 
float offset) const
+       int put_region_sec( const int h, const valarray<TFloat>& src, const 
float offset)
                { return put_region_smpl( h, src, offset * samplerate(h)); }
 
        int put_signal( const int h, const valarray<TFloat>& src)
diff --git a/src/libsigfile/tsv.cc b/src/libsigfile/tsv.cc
index f6139ed..8b1ffa6 100644
--- a/src/libsigfile/tsv.cc
+++ b/src/libsigfile/tsv.cc
@@ -219,9 +219,15 @@ _read_data()
 
 int
 CTSVFile::
-put_region_smpl( int, const valarray<TFloat>&, size_t) const
+put_region_smpl( int h, const valarray<TFloat>& V, size_t off)
 {
-       
+       if ( unlikely (h > (int)channels.size() - 1) )
+               throw out_of_range ("Bad channel index");
+       if ( unlikely (off + V.size() > channels[h].data.size()) )
+               throw out_of_range ("Bad offset");
+
+       channels[h].data[ slice (off, V.size(), 1) ] = V[ slice (0, V.size(), 
1) ];
+
        return 0;
 }
 
diff --git a/src/libsigfile/tsv.hh b/src/libsigfile/tsv.hh
index eda499f..779f8f7 100644
--- a/src/libsigfile/tsv.hh
+++ b/src/libsigfile/tsv.hh
@@ -217,11 +217,11 @@ class CTSVFile
                { return get_region_filtered_smpl( h, 0, 
channels.front().data.size()); }
 
       // put signal
-       int put_region_smpl( int, const valarray<TFloat>&, size_t) const;
-       int put_region_sec( const int h, const valarray<TFloat>& src, const 
float offset) const
+       int put_region_smpl( int, const valarray<TFloat>&, size_t);
+       int put_region_sec( const int h, const valarray<TFloat>& src, const 
float offset)
                { return put_region_smpl( h, src, (size_t)(offset * 
_samplerate)); }
 
-       int put_signal( const int h, const valarray<TFloat>& src) const
+       int put_signal( const int h, const valarray<TFloat>& src)
                { return put_region_smpl( h, src, 0); }
 
       // signal data info

-- 
Sleep experiment manager

_______________________________________________
debian-med-commit mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit

Reply via email to