From 42113618abda2260f7039878cd71cdb19d62eaca Mon Sep 17 00:00:00 2001
From: Hans Johnson <hans.j.johnson@gmail.com>
Date: Mon, 31 Dec 2018 07:30:51 -0700
Subject: [PATCH] COMP: DCMTK 3.6.4 updated function signatures
The locking mechanism for the dcmtk global
dictionary was changed to support:
Class OFReadWriteLock now uses SRW locks on Windows.
Unfortunately SRW locks require different functions for unlocking read
and write locks, which causes an API change in class OFReadWriteLock and
in class GlobalDcmDataDictionary (which internally uses a read/write
lock to protect access to the DICOM dictionary.)
---
Libs/DICOM/Core/ctkDICOMItem.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/Libs/DICOM/Core/ctkDICOMItem.cpp b/Libs/DICOM/Core/ctkDICOMItem.cpp
index f987b1fd6..be33e9054 100644
--- a/Libs/DICOM/Core/ctkDICOMItem.cpp
+++ b/Libs/DICOM/Core/ctkDICOMItem.cpp
@@ -21,6 +21,7 @@
#include "ctkDICOMItem.h"
+#include <dcmtk/dcmdata/dcuid.h>
#include <dcmtk/dcmdata/dctk.h>
#include <dcmtk/dcmdata/dcostrmb.h>
#include <dcmtk/dcmdata/dcistrmb.h>
@@ -950,7 +951,11 @@ QString ctkDICOMItem::TagDescription( const DcmTag& tag )
{
returnName = entry->getTagName();
}
+#if OFFIS_DCMTK_VERSION_NUMBER < 364
dcmDataDict.unlock();
+#else
+ dcmDataDict.rdunlock();
+#endif
return returnName;
}
@@ -964,7 +969,11 @@ QString ctkDICOMItem::TagVR( const DcmTag& tag )
{
returnVR = entry->getVR().getVRName();
}
+#if OFFIS_DCMTK_VERSION_NUMBER < 364
dcmDataDict.unlock();
+#else
+ dcmDataDict.rdunlock();
+#endif
return returnVR;
}