[Kst] [Bug 94351] attempting to plot a non-existent equation crashes.

George Staikos staikos at kde.org
Sat Dec 4 06:06:13 CET 2004


------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
        
http://bugs.kde.org/show_bug.cgi?id=94351        
staikos kde org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED



------- Additional Comments From staikos kde org  2004-12-04 06:06 -------
CVS commit by staikos: 

Don't crash on empty equation
BUG: 94351


  M +6 -7      kstequation.cpp   1.16


--- kdeextragear-2/kst/kst/kstequation.cpp  #1.15:1.16
 @ -177,5 +177,5  @ KstObject::UpdateType KstEquation::updat
   bool force = false;
 
-  if (KstObject::checkUpdateCounter(update_counter)) {
+  if (!_pe || KstObject::checkUpdateCounter(update_counter)) {
     return NO_CHANGE;
   }
 @ -240,6 +240,6  @ void KstEquation::setEquation(const QStr
     yy_scan_string(_equation.latin1());
     int rc = yyparse();
-    if (rc == 0) {
       _pe = static_cast<Equation::Node*>(ParsedEquation);
+    if (rc == 0 && _pe) {
       Equation::Context ctx;
       ctx.sampleCount = _ns;
 @ -248,5 +248,4  @ void KstEquation::setEquation(const QStr
       _pe->collectVectors(VectorsUsed);
       _pe->update(-1, &ctx);
-      ParsedEquation = 0L;
     } else {
       // Parse error
 @ -256,6 +255,6  @ void KstEquation::setEquation(const QStr
       }
       delete (Equation::Node*)ParsedEquation;
-      ParsedEquation = 0L;
     }
+    ParsedEquation = 0L;
   }
   _isValid = _pe != 0L;
 @ -414,6 +413,6  @ bool KstEquation::FillY(bool force) {
     yy_scan_string(_equation.latin1());
     int rc = yyparse();
-    if (rc == 0) {
       _pe = static_cast<Equation::Node*>(ParsedEquation);
+    if (_pe && rc == 0) {
       Equation::FoldVisitor vis(&ctx, &_pe);
       _pe->collectVectors(VectorsUsed);



More information about the Kst mailing list