diff --git a/src/tiffcomposite_int.cpp b/src/tiffcomposite_int.cpp index b09f3ba6..92462eda 100644 --- a/src/tiffcomposite_int.cpp +++ b/src/tiffcomposite_int.cpp @@ -78,9 +78,9 @@ TiffIfdMakernote::TiffIfdMakernote(uint16_t tag, IfdId group, IfdId mnGroup, MnH TiffComponent(tag, group), pHeader_(pHeader), ifd_(tag, mnGroup, hasNext) { } -TiffBinaryArray::TiffBinaryArray(uint16_t tag, IfdId group, const ArrayCfg* arrayCfg, const ArrayDef* arrayDef, +TiffBinaryArray::TiffBinaryArray(uint16_t tag, IfdId group, const ArrayCfg& arrayCfg, const ArrayDef* arrayDef, int defSize) : - TiffEntryBase(tag, group, arrayCfg->elTiffType_), arrayCfg_(arrayCfg), arrayDef_(arrayDef), defSize_(defSize) { + TiffEntryBase(tag, group, arrayCfg.elTiffType_), arrayCfg_(&arrayCfg), arrayDef_(arrayDef), defSize_(defSize) { } TiffBinaryArray::TiffBinaryArray(uint16_t tag, IfdId group, const ArraySet* arraySet, int setSize, diff --git a/src/tiffcomposite_int.hpp b/src/tiffcomposite_int.hpp index bae54d90..444a4214 100644 --- a/src/tiffcomposite_int.hpp +++ b/src/tiffcomposite_int.hpp @@ -1292,7 +1292,7 @@ class TiffBinaryArray : public TiffEntryBase { //! @name Creators //@{ //! Constructor - TiffBinaryArray(uint16_t tag, IfdId group, const ArrayCfg* arrayCfg, const ArrayDef* arrayDef, int defSize); + TiffBinaryArray(uint16_t tag, IfdId group, const ArrayCfg& arrayCfg, const ArrayDef* arrayDef, int defSize); //! Constructor for a complex binary array TiffBinaryArray(uint16_t tag, IfdId group, const ArraySet* arraySet, int setSize, CfgSelFct cfgSelFct); //! Virtual destructor @@ -1534,15 +1534,15 @@ TiffComponent::UniquePtr newTiffSubIfd(uint16_t tag, IfdId group) { } //! Function to create and initialize a new binary array entry -template +template TiffComponent::UniquePtr newTiffBinaryArray0(uint16_t tag, IfdId group) { - return std::make_unique(tag, group, &(*arrayCfg), &(*arrayDef), N); + return std::make_unique(tag, group, arrayCfg, &(*arrayDef), N); } //! Function to create and initialize a new simple binary array entry -template +template TiffComponent::UniquePtr newTiffBinaryArray1(uint16_t tag, IfdId group) { - return std::make_unique(tag, group, &(*arrayCfg), nullptr, 0); + return std::make_unique(tag, group, arrayCfg, nullptr, 0); } //! Function to create and initialize a new complex binary array entry diff --git a/src/tiffimage_int.cpp b/src/tiffimage_int.cpp index 8590e908..00cafcfb 100644 --- a/src/tiffimage_int.cpp +++ b/src/tiffimage_int.cpp @@ -12,8 +12,8 @@ #include // Shortcuts for the newTiffBinaryArray templates. -#define EXV_BINARY_ARRAY(arrayCfg, arrayDef) (newTiffBinaryArray0<&(arrayCfg), std::size(arrayDef), arrayDef>) -#define EXV_SIMPLE_BINARY_ARRAY(arrayCfg) (newTiffBinaryArray1<&(arrayCfg)>) +#define EXV_BINARY_ARRAY(arrayCfg, arrayDef) (newTiffBinaryArray0) +#define EXV_SIMPLE_BINARY_ARRAY(arrayCfg) (newTiffBinaryArray1) #define EXV_COMPLEX_BINARY_ARRAY(arraySet, cfgSelFct) (newTiffBinaryArray2) namespace Exiv2::Internal {