0024456: Graphic3d_MaterialAspect - use static assert instead of runtime exception
authoromy <omy@opencascade.com>
Thu, 19 Dec 2013 10:17:33 +0000 (14:17 +0400)
committerbugmaster <bugmaster@opencascade.com>
Thu, 19 Dec 2013 11:08:20 +0000 (15:08 +0400)
Graphic3d_MaterialAspect::NumberOfMaterials() : Standard_ASSERT_RAISE instead of run-time check is now used.
Replaced with Standard_STATIC_ASSERT

src/Graphic3d/Graphic3d_MaterialAspect.cxx

index e9359ee..55197df 100644 (file)
@@ -63,7 +63,7 @@
 
 // for the class
 #include <Graphic3d_MaterialAspect.ixx>
-
+#include <Standard_Assert.hxx>
 //-Aliases
 
 //-Global data definitions
@@ -887,10 +887,8 @@ static Material theMaterials[] = {
 };
 
 Standard_Integer Graphic3d_MaterialAspect::NumberOfMaterials() {
-Standard_Integer n =sizeof(theMaterials)/sizeof(Material);
-  if( n > Graphic3d_NOM_DEFAULT ) {
-    cout << " *** Graphic3d_MaterialAspect::NumberOfMaterials() may return a badvalue due to incoherente size between material name array and enum" << endl;
-  }
+  Standard_STATIC_ASSERT(sizeof(theMaterials)/sizeof(Material) == Graphic3d_NOM_DEFAULT);
+
   return Graphic3d_NOM_DEFAULT;
 }