From 320fb6cc93f51c2ccb2ba9c61aac65477b1ce05d Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Mon, 11 Oct 2004 19:18:59 +0000
Subject: [PATCH] fix potential crash with TimeStepMin/TimeStepMax and empty
 views

---
 Graphics/Graph2D.cpp     | 12 +++++++++---
 Graphics/Post.cpp        | 12 +++++++++---
 Graphics/PostElement.cpp | 12 +++++++++---
 Graphics/Scale.cpp       | 12 +++++++++---
 4 files changed, 36 insertions(+), 12 deletions(-)

diff --git a/Graphics/Graph2D.cpp b/Graphics/Graph2D.cpp
index 477613db57..f9e009aa93 100644
--- a/Graphics/Graph2D.cpp
+++ b/Graphics/Graph2D.cpp
@@ -1,4 +1,4 @@
-// $Id: Graph2D.cpp,v 1.36 2004-10-11 17:22:57 geuzaine Exp $
+// $Id: Graph2D.cpp,v 1.37 2004-10-11 19:18:59 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -120,8 +120,14 @@ static void Draw_Graph2D(Post_View * v,
     ValMax = v->CustomMax;
     break;
   case DRAW_POST_RANGE_PER_STEP:
-    ValMin = v->TimeStepMin[v->TimeStep];
-    ValMax = v->TimeStepMax[v->TimeStep];
+    if(v->TimeStepMin && v->TimeStepMax){
+      ValMin = v->TimeStepMin[v->TimeStep];
+      ValMax = v->TimeStepMax[v->TimeStep];
+    }
+    else{ // possible if the view is empty
+      ValMin = v->Min;
+      ValMax = v->Max;
+    }
     break;
   }
 
diff --git a/Graphics/Post.cpp b/Graphics/Post.cpp
index 664d9eae2b..1387a7b833 100644
--- a/Graphics/Post.cpp
+++ b/Graphics/Post.cpp
@@ -1,4 +1,4 @@
-// $Id: Post.cpp,v 1.78 2004-09-12 04:13:59 geuzaine Exp $
+// $Id: Post.cpp,v 1.79 2004-10-11 19:18:59 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -368,8 +368,14 @@ void Draw_Post(void)
 	ValMax = v->CustomMax;
 	break;
       case DRAW_POST_RANGE_PER_STEP:
-	ValMin = v->TimeStepMin[v->TimeStep];
-	ValMax = v->TimeStepMax[v->TimeStep];
+	if(v->TimeStepMin && v->TimeStepMax){
+	  ValMin = v->TimeStepMin[v->TimeStep];
+	  ValMax = v->TimeStepMax[v->TimeStep];
+	}
+	else{ // possible if the view is empty
+	  ValMin = v->Min;
+	  ValMax = v->Max;
+	}
 	break;
       }
       v->MinForDisplacement = ValMin;
diff --git a/Graphics/PostElement.cpp b/Graphics/PostElement.cpp
index 41d84466d7..074f4578ac 100644
--- a/Graphics/PostElement.cpp
+++ b/Graphics/PostElement.cpp
@@ -1,4 +1,4 @@
-// $Id: PostElement.cpp,v 1.43 2004-09-17 02:11:03 geuzaine Exp $
+// $Id: PostElement.cpp,v 1.44 2004-10-11 19:18:59 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -913,8 +913,14 @@ int GetScalarDataFromOtherView(int type, int nbnod, Post_View *v, double *d)
     v->MaxForDisplacement = v->CustomMax;
     break;
   case DRAW_POST_RANGE_PER_STEP:
-    v->MinForDisplacement = v2->TimeStepMin[v->TimeStep];
-    v->MaxForDisplacement = v2->TimeStepMax[v->TimeStep];
+    if(v->TimeStepMin && v->TimeStepMax){
+      v->MinForDisplacement = v2->TimeStepMin[v->TimeStep];
+      v->MaxForDisplacement = v2->TimeStepMax[v->TimeStep];
+    }
+    else{
+      v->MinForDisplacement = v2->Min;
+      v->MaxForDisplacement = v2->Max;
+    }
     break;
   }
 
diff --git a/Graphics/Scale.cpp b/Graphics/Scale.cpp
index 8cb44018f9..dc1ce04610 100644
--- a/Graphics/Scale.cpp
+++ b/Graphics/Scale.cpp
@@ -1,4 +1,4 @@
-// $Id: Scale.cpp,v 1.46 2004-10-11 19:02:46 geuzaine Exp $
+// $Id: Scale.cpp,v 1.47 2004-10-11 19:18:59 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -67,8 +67,14 @@ void draw_scale(Post_View * v,
       ValMax = v->CustomMax;
       break;
     case DRAW_POST_RANGE_PER_STEP:
-      ValMin = v->TimeStepMin[v->TimeStep];
-      ValMax = v->TimeStepMax[v->TimeStep];
+      if(v->TimeStepMin && v->TimeStepMax){
+	ValMin = v->TimeStepMin[v->TimeStep];
+	ValMax = v->TimeStepMax[v->TimeStep];
+      }
+      else{ // possible of the view is empty
+	ValMin = v->Min;
+	ValMax = v->Max;
+      }
       break;
     case DRAW_POST_RANGE_DEFAULT:
     default:
-- 
GitLab