0023132: Suspicious code snippets
[occt.git] / src / RWStepBasic / RWStepBasic_RWSiUnitAndSolidAngleUnit.cxx
index 9b4aae2..ee36aaa 100755 (executable)
@@ -55,20 +55,30 @@ void RWStepBasic_RWSiUnitAndSolidAngleUnit::ReadStep (const Handle(StepData_Step
     if (data->ParamType(num,1) == Interface_ParamEnum) {
       Standard_CString text = data->ParamCValue(num,1);
       hasAprefix = reader.DecodePrefix(aPrefix,text);
-      if(!hasAprefix)
-       ach->AddFail("Enumeration si_prefix has not an allowed value");
+      if(!hasAprefix){
+             ach->AddFail("Enumeration si_prefix has not an allowed value");
+        return;
+      }
+    }
+    else{
+      ach->AddFail("Parameter #1 (prefix) is not an enumeration");
+      return;
     }
-    else ach->AddFail("Parameter #1 (prefix) is not an enumeration");
   }
   
   // --- field : name ---
   StepBasic_SiUnitName aName;
   if (data->ParamType(num,2) == Interface_ParamEnum) {
     Standard_CString text = data->ParamCValue(num,2);
-    if(!reader.DecodeName(aName,text))
+    if(!reader.DecodeName(aName,text)){
       ach->AddFail("Enumeration si_unit_name has not an allowed value");
+      return;
+    }
+  }
+  else{
+    ach->AddFail("Parameter #2 (name) is not an enumeration");
+    return;
   }
-  else ach->AddFail("Parameter #2 (name) is not an enumeration");
 
   // --- Instance of plex componant SolidAngleUnit ---
   num = data->NextForComplex(num);