[Kst] branches/work/kst/1.1/kst/kst

George Staikos staikos at kde.org
Thu Sep 22 14:58:24 CEST 2005


SVN commit 462950 by staikos:

- ignores
- add an assert to the planck plugin for safety check
- add lots of asserts to kstrvector, and don't try to resize the vector to 0 and
  then read -1 from the data source.


 _M            . (directory)  
 M  +1 -0      datasources/planck/planck.cpp  
 M  +12 -2     kstrvector.cpp  


** branches/work/kst/1.1/kst/kst #property svn:ignore
   - Makefile
Makefile.in
.deps
.libs
changefiledialog.cpp
changefiledialog.h
changefiledialog.moc
changenptsdialog.cpp
changenptsdialog.h
changenptsdialog.moc
curvedialog.cpp
curvedialog.h
curvedialog.moc
d2asc
d2asc_meta_unload.cpp
datamanager.cpp
datamanager.h
datamanager.moc
eqdialog.cpp
eqdialog.h
eqdialog.moc
graphfiledialog.cpp
graphfiledialog.h
graphfiledialog.moc
hsdialog.cpp
hsdialog.h
hsdialog.moc
kst
kst.moc
kst_meta_unload.cpp
kstchangefiledialog_i.moc
kstchangenptsdialog_i.moc
kstcurvedialog_i.moc
kstdatamanager_i.moc
kstdoc.moc
ksteqdialog_i.moc
kstgraphfiledialog_i.moc
ksthsdialog_i.moc
kstplotdialog_i.moc
kstpsddialog_i.moc
kstquickcurvesdialog_i.moc
kstquickequationdialog_i.moc
kstquickpsddialog_i.moc
kstvectordialog_i.moc
kstview.moc
plotdialog.cpp
plotdialog.h
plotdialog.moc
psddialog.cpp
psddialog.h
psddialog.moc
quickcurvesdialog.cpp
quickcurvesdialog.h
quickcurvesdialog.moc
quickequationdialog.cpp
quickequationdialog.h
quickequationdialog.moc
quickpsddialog.cpp
quickpsddialog.h
quickpsddialog.moc
vectordialog.cpp
vectordialog.h
vectordialog.moc
   + Makefile
Makefile.in
.deps
.libs
changefiledialog.cpp
changefiledialog.h
changefiledialog.moc
changenptsdialog.cpp
changenptsdialog.h
changenptsdialog.moc
curvedialog.cpp
curvedialog.h
curvedialog.moc
d2asc
d2asc_meta_unload.cpp
datamanager.cpp
datamanager.h
datamanager.moc
eqdialog.cpp
eqdialog.h
eqdialog.moc
graphfiledialog.cpp
graphfiledialog.h
graphfiledialog.moc
hsdialog.cpp
hsdialog.h
hsdialog.moc
kst
kst.moc
kst_meta_unload.cpp
kstchangefiledialog_i.moc
kstchangenptsdialog_i.moc
kstcurvedialog_i.moc
kstdatamanager_i.moc
kstdoc.moc
ksteqdialog_i.moc
kstgraphfiledialog_i.moc
ksthsdialog_i.moc
kstplotdialog_i.moc
kstpsddialog_i.moc
kstquickcurvesdialog_i.moc
kstquickequationdialog_i.moc
kstquickpsddialog_i.moc
kstvectordialog_i.moc
kstview.moc
plotdialog.cpp
plotdialog.h
plotdialog.moc
psddialog.cpp
psddialog.h
psddialog.moc
quickcurvesdialog.cpp
quickcurvesdialog.h
quickcurvesdialog.moc
quickequationdialog.cpp
quickequationdialog.h
quickequationdialog.moc
quickpsddialog.cpp
quickpsddialog.h
quickpsddialog.moc
vectordialog.cpp
vectordialog.h
vectordialog.moc
scalarselector.cpp
scalareditor.moc
viewscalarsdialog.h
draggablelistbox.moc
kstcombobox.moc
datawizard.h
viewscalarsdialog.cpp
kstsettingsdlg.moc
viewvectorsdialog.h
extensiondlg.h
curveplacementwidget.moc
kstlabeldialog.moc
plugindialog.cpp
kstsettingsdlg.h
stringeditor.h
kstextension.moc
debugdialog.moc
extensiondlg.cpp
kstplotgroup.moc
stringselector.h
datawizard.moc
imagedialog.cpp
kstdatadialog.cpp
viewfitsdialog.cpp
kstquickstartdialog_i.moc
imagedialog.h
kstvector.cpp.orig
fftoptionswidget.moc
curveappearancewidget.cpp
kstborderedviewobject.moc
kstimagedialog_i.moc
quickstartdialog.h
kstviewvectorsdialog_i.moc
kstiface.kidl
debugdialog.h
matrixdialog.moc
kstvector.moc
viewfitsdialog.h
vectorsavedialog.moc
quickstartdialog.moc
stringeditor.moc
plugindialog.h
kstlabeldialog_i.moc
kstimagedialog_i.cpp.orig
vectorselector.moc
stringselector.cpp
viewmatricesdialog.cpp
datarangewidget.h
viewmatricesdialog.h
kstviewmatricesdialog_i.moc
scalareditor.cpp
kst2dplot.moc
datarangewidget.moc
main.bbg
kstsettingsdlg.cpp
kstdataobject.moc
curveplacementwidget.cpp
kstlabeldialog.cpp
eventmonitor.moc
viewvectorsdialog.moc
eventmonitor.h
matrixselector.moc
kstplugindialog_i.moc
debugdialog.cpp
kstplugindialog_i.cpp.orig
kstmatrixdialog_i.moc
kstviewwindow.moc
datawizard.cpp
kstiface_impl.cpp.orig
kstviewobject.moc
pluginmanager.moc
curveplacementwidget.h
kstlabeldialog.h
pluginmanager.h
kstdatadialog.h
kstviewscalarsdialog_i.moc
matrixdialog.h
fftoptionswidget.cpp
scalarselector.moc
kst.h.orig
viewscalarsdialog.moc
plugindialog.moc
plotlistbox.moc
kstplugin.cpp.orig
extensiondlg.moc
kstmetaplot.moc
datawizard.ui.h.orig
matrixdialog.cpp
imagedialog.moc
vectorsavedialog.cpp
kstdatadialog.moc
kstiface_skel.cpp
quickstartdialog.cpp
viewfitsdialog.moc
stringeditor.cpp
Makefile.am.orig
kst.cpp.orig
vectorselector.h
matrixselector.h
vectorselector.cpp
kstdebug.moc
d2asc.bbg
kstscalar.moc
curveappearancewidget.moc
kstviewfitsdialog_i.moc
vectorsavedialog.h
scalarselector.h
fftoptionswidget.h
kstdatasource.moc
scalareditor.h
kstplotbase.moc
datarangewidget.cpp
kstdebugdialog_i.moc
kstlogwidget.moc
curveappearancewidget.h
kststring.moc
eventmonitor.cpp
viewvectorsdialog.cpp
matrixselector.cpp
kstviewwidget.moc
plugincollection.moc
emailthread.moc
kstfitdialog_i.moc
ksttimers.h
stringselector.moc
ksttoplevelview.moc
viewmatricesdialog.moc
extensionmgr.moc
pluginmanager.cpp
stamp-h2
ksteventmonitor_i.moc
ksteventmonitorentry.moc
kstfilterdialog_i.moc
--- branches/work/kst/1.1/kst/kst/datasources/planck/planck.cpp #462949:462950
@@ -121,6 +121,7 @@
     return 0;
   }
 
+  assert(n != 0);
   return _planckObject->readObject(field, v, start + s, start + s + n - 1);
 }
 
--- branches/work/kst/1.1/kst/kst/kstrvector.cpp #462949:462950
@@ -459,7 +459,9 @@
       new_nf = fc - new_f0;
     }
     if (new_nf <= 0) {
-      new_nf = new_f0 = 0;
+      // Tried to read starting past the end.
+      new_f0 = 0;
+      new_nf = 1;
     }
   }
 
@@ -489,6 +491,7 @@
       _numSamples = (NF-1)*SPF+1;
     }
 
+    // FIXME: use memmove()
     for (i = 0; i < _numSamples; i++) {
       _v[i] = _v[i+shift];
     }
@@ -563,6 +566,7 @@
       bool rc = resize((new_nf - 1)*SPF + 1);
       if (!rc) {
         // FIXME: handle failed resize
+        abort();
       }
     }
 
@@ -572,9 +576,15 @@
 
     // read the new data from file
     if (_file->samplesPerFrame(_field) > 1) {
+      assert(new_nf - NF - 1 > 0 || new_nf - NF - 1 == -1);
+      assert(new_f0 + NF >= 0);
+      assert(new_f0 + new_nf - 1 >= 0);
       n_read = _file->readField(_v+NF*SPF, _field, new_f0 + NF, new_nf - NF - 1);
-      n_read += _file->readField(_v+(new_nf-1)*SPF, _field, new_f0 + new_nf-1, -1);
+      n_read += _file->readField(_v+(new_nf-1)*SPF, _field, new_f0 + new_nf - 1, -1);
     } else {
+      //kdDebug() << "Reading into _v=" << (void*)_v << " which has size " << _size << " and starting at offset " << NF*SPF << " for s=" << new_f0 + NF << " and n=" << new_nf - NF << endl;
+      assert(new_f0 + NF >= 0);
+      assert(new_nf - NF > 0 || new_nf - NF == -1);
       n_read = _file->readField(_v+NF*SPF, _field, new_f0 + NF, new_nf - NF);
     }
   }


More information about the Kst mailing list