Blob Blame History Raw
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;
 }