0028257: XCAFPrs_Style - uninitialized memory usage within ::HashCode()
[occt.git] / src / XCAFPrs / XCAFPrs_Style.cxx
index 39e359e..6cfb5ce 100644 (file)
 // Alternatively, this file may be used under the terms of Open CASCADE
 // commercial license or contractual agreement.
 
-
-#include <Quantity_Color.hxx>
 #include <XCAFPrs_Style.hxx>
 
 //=======================================================================
 //function : XCAFPrs_Style
-//purpose  : 
-//=======================================================================
-XCAFPrs_Style::XCAFPrs_Style () : 
-       defColorSurf(Standard_False),
-       defColorCurv(Standard_False),
-       myVisibility(Standard_True)
-{
-}
-
-//=======================================================================
-//function : IsSetColorSurf
-//purpose  : 
+//purpose  :
 //=======================================================================
-
-Standard_Boolean XCAFPrs_Style::IsSetColorSurf () const
+XCAFPrs_Style::XCAFPrs_Style()
+: myHasColorSurf(Standard_False),
+  myHasColorCurv(Standard_False),
+  myIsVisible   (Standard_True)
 {
-  return defColorSurf;
-}
-
-//=======================================================================
-//function : GetColorSurf
-//purpose  : 
-//=======================================================================
-
-Quantity_Color XCAFPrs_Style::GetColorSurf () const
-{
-  return myColorSurf;
+  //
 }
 
 //=======================================================================
 //function : SetColorSurf
-//purpose  : 
+//purpose  :
 //=======================================================================
-
-void XCAFPrs_Style::SetColorSurf (const Quantity_Color &col) 
+void XCAFPrs_Style::SetColorSurf (const Quantity_Color& theColor)
 {
-  myColorSurf = col;
-  defColorSurf = Standard_True;
+  myColorSurf    = theColor;
+  myHasColorSurf = Standard_True;
 }
 
 //=======================================================================
 //function : UnSetColorSurf
-//purpose  : 
-//=======================================================================
-
-void XCAFPrs_Style::UnSetColorSurf () 
-{
-  defColorSurf = Standard_False;
-  myColorSurf.SetValues ( Quantity_NOC_YELLOW );
-}
-
+//purpose  :
 //=======================================================================
-//function : IsSetColorCurv
-//purpose  : 
-//=======================================================================
-
-Standard_Boolean XCAFPrs_Style::IsSetColorCurv () const
+void XCAFPrs_Style::UnSetColorSurf()
 {
-  return defColorCurv;
-}
-
-//=======================================================================
-//function : GetColorCurv
-//purpose  : 
-//=======================================================================
-
-Quantity_Color XCAFPrs_Style::GetColorCurv () const
-{
-  return myColorCurv;
+  myHasColorSurf = Standard_False;
+  myColorSurf.SetValues (Quantity_NOC_YELLOW);
 }
 
 //=======================================================================
 //function : SetColorCurv
-//purpose  : 
+//purpose  :
 //=======================================================================
-
-void XCAFPrs_Style::SetColorCurv (const Quantity_Color &col) 
+void XCAFPrs_Style::SetColorCurv (const Quantity_Color& theColor)
 {
-  myColorCurv = col;
-  defColorCurv = Standard_True;
+  myColorCurv    = theColor;
+  myHasColorCurv = Standard_True;
 }
 
 //=======================================================================
 //function : UnSetColorCurv
-//purpose  : 
+//purpose  :
 //=======================================================================
-
-void XCAFPrs_Style::UnSetColorCurv () 
-{
-  defColorCurv = Standard_False;
-  myColorCurv.SetValues ( Quantity_NOC_YELLOW );
-}
-
-//=======================================================================
-//function : SetVisibility
-//purpose  : 
-//=======================================================================
-
-void XCAFPrs_Style::SetVisibility (const Standard_Boolean visibility)
-{
-  myVisibility = visibility;
-  if ( ! visibility ) { UnSetColorSurf(); UnSetColorCurv(); } // for hash codes
-}
-
-//=======================================================================
-//function : IsVisible
-//purpose  : 
-//=======================================================================
-
-Standard_Boolean XCAFPrs_Style::IsVisible () const
-{
-  return myVisibility;
-}
-
-//=======================================================================
-//function : IsEqual
-//purpose  : 
-//=======================================================================
-
-Standard_Boolean XCAFPrs_Style::IsEqual (const XCAFPrs_Style &other) const
-{
-  return myVisibility == other.myVisibility &&
-         ( ! myVisibility || 
-          ( defColorSurf == other.defColorSurf &&
-            defColorCurv == other.defColorCurv &&
-             ( ! defColorSurf || myColorSurf == other.myColorSurf ) &&
-             ( ! defColorCurv || myColorCurv == other.myColorCurv ) ) );
-}
-
-//=======================================================================
-//function : HashCode
-//purpose  : 
-//=======================================================================
-
-Standard_Integer XCAFPrs_Style::HashCode (const XCAFPrs_Style& S, const Standard_Integer Upper)
-{
-  int  *meintPtr  = (int*)&S;
-  Standard_Integer aHashCode=0, i, aSize = sizeof(S) / sizeof(int);
-  
-  for (i = 0;  i < aSize; i++, meintPtr++) {
-    aHashCode = aHashCode ^ *meintPtr;
-  }
-  return ::HashCode( aHashCode, Upper);
-}
-
-//=======================================================================
-//function : IsEqual
-//purpose  : 
-//=======================================================================
-
-Standard_Boolean XCAFPrs_Style::IsEqual (const XCAFPrs_Style& S1, const XCAFPrs_Style& S2)
+void XCAFPrs_Style::UnSetColorCurv()
 {
-  return S1.IsEqual(S2);
+  myHasColorCurv = Standard_False;
+  myColorCurv.SetValues (Quantity_NOC_YELLOW);
 }