# HG changeset patch # User Sebastien Jodogne # Date 1586981862 -7200 # Node ID e7003b2203a72d4c8017fc36168e03403c320bba # Parent 95083d2f6819370e977ffdcaad8ef80bde08f712 fixing signature of DicomMap::ParseDicomMetaInformation() diff -r 95083d2f6819 -r e7003b2203a7 Core/DicomFormat/DicomMap.cpp --- a/Core/DicomFormat/DicomMap.cpp Wed Apr 15 17:58:30 2020 +0200 +++ b/Core/DicomFormat/DicomMap.cpp Wed Apr 15 22:17:42 2020 +0200 @@ -745,7 +745,7 @@ } - bool DicomMap::IsDicomFile(const char* dicom, + bool DicomMap::IsDicomFile(const void* dicom, size_t size) { /** @@ -755,16 +755,18 @@ * account to determine whether the file is or is not a DICOM file. **/ + const uint8_t* p = reinterpret_cast(dicom); + return (size >= 132 && - dicom[128] == 'D' && - dicom[129] == 'I' && - dicom[130] == 'C' && - dicom[131] == 'M'); + p[128] == 'D' && + p[129] == 'I' && + p[130] == 'C' && + p[131] == 'M'); } bool DicomMap::ParseDicomMetaInformation(DicomMap& result, - const char* dicom, + const void* dicom, size_t size) { if (!IsDicomFile(dicom, size)) @@ -788,7 +790,7 @@ DicomTag tag(0x0000, 0x0000); // Dummy initialization ValueRepresentation vr; std::string value; - if (!ReadNextTag(tag, vr, value, dicom, size, position) || + if (!ReadNextTag(tag, vr, value, reinterpret_cast(dicom), size, position) || tag.GetGroup() != 0x0002 || tag.GetElement() != 0x0000 || vr != ValueRepresentation_UnsignedLong || @@ -805,7 +807,7 @@ while (position < stopPosition) { - if (ReadNextTag(tag, vr, value, dicom, size, position)) + if (ReadNextTag(tag, vr, value, reinterpret_cast(dicom), size, position)) { result.SetValue(tag, value, IsBinaryValueRepresentation(vr)); } diff -r 95083d2f6819 -r e7003b2203a7 Core/DicomFormat/DicomMap.h --- a/Core/DicomFormat/DicomMap.h Wed Apr 15 17:58:30 2020 +0200 +++ b/Core/DicomFormat/DicomMap.h Wed Apr 15 22:17:42 2020 +0200 @@ -180,11 +180,11 @@ void GetTags(std::set& tags) const; - static bool IsDicomFile(const char* dicom, + static bool IsDicomFile(const void* dicom, size_t size); static bool ParseDicomMetaInformation(DicomMap& result, - const char* dicom, + const void* dicom, size_t size); void LogMissingTagsForStore() const; diff -r 95083d2f6819 -r e7003b2203a7 Plugins/Engine/OrthancPlugins.cpp --- a/Plugins/Engine/OrthancPlugins.cpp Wed Apr 15 17:58:30 2020 +0200 +++ b/Plugins/Engine/OrthancPlugins.cpp Wed Apr 15 22:17:42 2020 +0200 @@ -2433,7 +2433,7 @@ return; case _OrthancPluginService_GetInstanceData: - *p.resultString = instance.GetBufferData(); + *p.resultString = reinterpret_cast(instance.GetBufferData()); return; case _OrthancPluginService_HasInstanceMetadata: