Fix comparisons between signed and unsigned values.
[asdcplib.git] / src / JP2K_Sequence_Parser.cpp
index a1ece3facc18fc9f98c4439a04adefd854647849..a8de92510bc14fb2985c2f6ef2cf6103b53ef019 100755 (executable)
@@ -229,7 +229,7 @@ operator==(const ASDCP::JP2K::CodingStyleDefault_t& lhs, const ASDCP::JP2K::Codi
 
   for ( ui32_t i = 0; i < sizeof(ui16_t); i++ )
     {
-      if ( lhs.SGcod.NumberOfLayers[i] != lhs.SGcod.NumberOfLayers[i]  )
+      if ( lhs.SGcod.NumberOfLayers[i] != rhs.SGcod.NumberOfLayers[i]  )
        return false;
     }
 
@@ -253,12 +253,18 @@ operator==(const ASDCP::JP2K::CodingStyleDefault_t& lhs, const ASDCP::JP2K::Codi
 bool
 operator==(const ASDCP::JP2K::ExtendedCapabilities_t& lhs, const ASDCP::JP2K::ExtendedCapabilities_t& rhs)
 {
-       if (lhs.Pcap != rhs.Pcap) return false;
+       if (lhs.N != rhs.N) return false;
+
+       if (lhs.N != JP2K::NoExtendedCapabilitiesSignaled) {
+
+               if (lhs.Pcap != rhs.Pcap) return false;
+
+               for (i32_t i = 0; i < lhs.N; i++)
+               {
+                       if (lhs.Ccap[i] != rhs.Ccap[i])
+                               return false;
+               }
 
-       for (ui32_t i = 0; i < JP2K::MaxCapabilities; i++)
-       {
-               if (lhs.Ccap[i] != rhs.Ccap[i])
-                       return false;
        }
 
        return true;