0023132: Suspicious code snippets
[occt.git] / src / RWStepBasic / RWStepBasic_RWSiUnitAndAreaUnit.cxx
index 60d95d2..76c61b5 100755 (executable)
@@ -54,19 +54,29 @@ void RWStepBasic_RWSiUnitAndAreaUnit::ReadStep(const Handle(StepData_StepReaderD
     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 #2 (prefix) is not an enumeration");
+      return;
     }
-    else ach->AddFail("Parameter #2 (prefix) is not an enumeration");
   }
      
   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 #3 (name) is not an enumeration");
+    return;
   }
-  else ach->AddFail("Parameter #3 (name) is not an enumeration");
   
   ent->Init(hasAprefix,aPrefix,aName);
   ent->SetDimensions(aDimensions);