# HG changeset patch # User Sebastien Jodogne # Date 1507019406 -7200 # Node ID feb0d2dcfa9bf587aafb3cfecbfcb737414e7244 # Parent 7e217a1cc63f2d6c92ee8a493aacd507562eb406 try and fix compiler bugs diff -r 7e217a1cc63f -r feb0d2dcfa9b Core/DicomFormat/DicomImageInformation.cpp --- a/Core/DicomFormat/DicomImageInformation.cpp Mon Oct 02 22:02:05 2017 +0200 +++ b/Core/DicomFormat/DicomImageInformation.cpp Tue Oct 03 10:30:06 2017 +0200 @@ -178,18 +178,20 @@ throw OrthancException(ErrorCode_NotImplemented); } - try - { - numberOfFrames_ = boost::lexical_cast(values.GetValue(DICOM_TAG_NUMBER_OF_FRAMES).GetContent()); - } - catch (OrthancException&) + if (values.HasTag(DICOM_TAG_NUMBER_OF_FRAMES)) { - // If the tag "NumberOfFrames" is absent, assume there is a single frame - numberOfFrames_ = 1; + try + { + numberOfFrames_ = boost::lexical_cast(values.GetValue(DICOM_TAG_NUMBER_OF_FRAMES).GetContent()); + } + catch (boost::bad_lexical_cast&) + { + throw OrthancException(ErrorCode_NotImplemented); + } } - catch (boost::bad_lexical_cast&) + else { - throw OrthancException(ErrorCode_NotImplemented); + numberOfFrames_ = 1; } if ((bitsAllocated_ != 8 && bitsAllocated_ != 16 && diff -r 7e217a1cc63f -r feb0d2dcfa9b UnitTestsSources/DicomMapTests.cpp --- a/UnitTestsSources/DicomMapTests.cpp Mon Oct 02 22:02:05 2017 +0200 +++ b/UnitTestsSources/DicomMapTests.cpp Tue Oct 03 10:30:06 2017 +0200 @@ -265,9 +265,9 @@ ASSERT_FLOAT_EQ(2147483647.0f, f); ASSERT_DOUBLE_EQ(2147483647.0, d); ASSERT_EQ(2147483647, i); - ASSERT_EQ(2147483647, j); + ASSERT_EQ(2147483647ll, j); ASSERT_EQ(2147483647u, k); - ASSERT_EQ(2147483647u, l); + ASSERT_EQ(2147483647llu, l); // Test shortcuts m.SetValue(DICOM_TAG_PATIENT_NAME, "42", false); @@ -280,9 +280,9 @@ ASSERT_FLOAT_EQ(42.0f, f); ASSERT_DOUBLE_EQ(42.0, d); ASSERT_EQ(42, i); - ASSERT_EQ(42, j); + ASSERT_EQ(42ll, j); ASSERT_EQ(42u, k); - ASSERT_EQ(42u, l); + ASSERT_EQ(42llu, l); ASSERT_TRUE(m.CopyToString(s, DICOM_TAG_PATIENT_NAME, false)); ASSERT_EQ("42", s); @@ -300,9 +300,9 @@ ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger64(l)); ASSERT_FLOAT_EQ(2147483648.0f, f); ASSERT_DOUBLE_EQ(2147483648.0, d); - ASSERT_EQ(2147483648, j); + ASSERT_EQ(2147483648ll, j); ASSERT_EQ(2147483648u, k); - ASSERT_EQ(2147483648u, l); + ASSERT_EQ(2147483648llu, l); // 2**32-1 m.SetValue(DICOM_TAG_PATIENT_NAME, "4294967295", false); @@ -314,9 +314,9 @@ ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger64(l)); ASSERT_FLOAT_EQ(4294967295.0f, f); ASSERT_DOUBLE_EQ(4294967295.0, d); - ASSERT_EQ(4294967295, j); + ASSERT_EQ(4294967295ll, j); ASSERT_EQ(4294967295u, k); - ASSERT_EQ(4294967295u, l); + ASSERT_EQ(4294967295llu, l); // 2**32 m.SetValue(DICOM_TAG_PATIENT_NAME, "4294967296", false); @@ -328,8 +328,8 @@ ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger64(l)); ASSERT_FLOAT_EQ(4294967296.0f, f); ASSERT_DOUBLE_EQ(4294967296.0, d); - ASSERT_EQ(4294967296, j); - ASSERT_EQ(4294967296u, l); + ASSERT_EQ(4294967296ll, j); + ASSERT_EQ(4294967296llu, l); m.SetValue(DICOM_TAG_PATIENT_NAME, "-1", false); ASSERT_TRUE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseFloat(f)); @@ -341,7 +341,7 @@ ASSERT_FLOAT_EQ(-1.0f, f); ASSERT_DOUBLE_EQ(-1.0, d); ASSERT_EQ(-1, i); - ASSERT_EQ(-1, j); + ASSERT_EQ(-1ll, j); // -2**31 m.SetValue(DICOM_TAG_PATIENT_NAME, "-2147483648", false); @@ -354,7 +354,7 @@ ASSERT_FLOAT_EQ(-2147483648.0f, f); ASSERT_DOUBLE_EQ(-2147483648.0, d); ASSERT_EQ(-2147483648, i); - ASSERT_EQ(-2147483648, j); + ASSERT_EQ(-2147483648ll, j); // -2**31 - 1 m.SetValue(DICOM_TAG_PATIENT_NAME, "-2147483649", false); @@ -366,5 +366,5 @@ ASSERT_FALSE(m.GetValue(DICOM_TAG_PATIENT_NAME).ParseUnsignedInteger64(l)); ASSERT_FLOAT_EQ(-2147483649.0f, f); ASSERT_DOUBLE_EQ(-2147483649.0, d); - ASSERT_EQ(-2147483649, j); + ASSERT_EQ(-2147483649ll, j); }