diff --git a/app/actions.cpp b/app/actions.cpp index dc2234be..f771535c 100644 --- a/app/actions.cpp +++ b/app/actions.cpp @@ -325,8 +325,8 @@ int Print::printTag(const Exiv2::ExifData& exifData, const std::string& key, con return rc; } // Print::printTag -int Print::printTag(const Exiv2::ExifData& exifData, const EasyAccessFct& easyAccessFct, const std::string& label, - const EasyAccessFct& easyAccessFctFallback) const { +int Print::printTag(const Exiv2::ExifData& exifData, EasyAccessFct easyAccessFct, const std::string& label, + EasyAccessFct easyAccessFctFallback) const { int rc = 0; if (!label.empty()) { printLabel(label); diff --git a/app/actions.hpp b/app/actions.hpp index 1a701157..91c1ccaf 100644 --- a/app/actions.hpp +++ b/app/actions.hpp @@ -157,14 +157,14 @@ class Print : public Task { */ int printTag(const Exiv2::ExifData& exifData, const std::string& key, const std::string& label = "") const; //! Type for an Exiv2 Easy access function - using EasyAccessFct = std::function; + using EasyAccessFct = Exiv2::ExifData::const_iterator (*)(const Exiv2::ExifData&); /*! @brief Print one summary line with a label (if provided) and requested data. A line break is printed only if a label is provided. @return 1 if a line was written, 0 if the information was not found. */ - int printTag(const Exiv2::ExifData& exifData, const EasyAccessFct& easyAccessFct, const std::string& label = "", - const EasyAccessFct& easyAccessFctFallback = nullptr) const; + int printTag(const Exiv2::ExifData& exifData, EasyAccessFct easyAccessFct, const std::string& label = "", + EasyAccessFct easyAccessFctFallback = nullptr) const; private: std::string path_; diff --git a/include/exiv2/xmp_exiv2.hpp b/include/exiv2/xmp_exiv2.hpp index 8301ff58..81fabff7 100644 --- a/include/exiv2/xmp_exiv2.hpp +++ b/include/exiv2/xmp_exiv2.hpp @@ -10,8 +10,6 @@ #include "metadatum.hpp" #include "properties.hpp" -#include - // ***************************************************************************** // namespace extensions namespace Exiv2 { @@ -310,7 +308,7 @@ class EXIV2API XmpParser { @param pLockData Pointer to the pLockData passed to initialize() @param lockUnlock Indicates whether to lock (true) or unlock (false) */ - using XmpLockFct = std::function; + using XmpLockFct = void (*)(void* pLockData, bool lockUnlock); /*! @brief Initialize the XMP Toolkit. diff --git a/samples/easyaccess-test.cpp b/samples/easyaccess-test.cpp index dc3d7352..19c68d3e 100644 --- a/samples/easyaccess-test.cpp +++ b/samples/easyaccess-test.cpp @@ -5,7 +5,7 @@ #include #include -using EasyAccessFct = std::function; +using EasyAccessFct = Exiv2::ExifData::const_iterator (*)(const Exiv2::ExifData&); using EasyAccess = std::pair; static const EasyAccess easyAccess[] = { diff --git a/src/convert.cpp b/src/convert.cpp index 89ea4aa5..9195e662 100644 --- a/src/convert.cpp +++ b/src/convert.cpp @@ -1524,7 +1524,7 @@ bool asciiToUtf8(std::string& /*str*/) { return true; } -using ConvFct = std::function; +using ConvFct = bool (*)(std::string&); struct ConvFctList { bool operator==(const std::pair& fromTo) const { diff --git a/src/crwimage_int.hpp b/src/crwimage_int.hpp index eb326bcc..bcaa5eda 100644 --- a/src/crwimage_int.hpp +++ b/src/crwimage_int.hpp @@ -26,10 +26,10 @@ using CrwSubDir = std::pair; // type definitions //! Function pointer for functions to decode Exif tags from a CRW entry -using CrwDecodeFct = std::function; +using CrwDecodeFct = void (*)(const CiffComponent&, const CrwMapping*, Image&, ByteOrder); //! Function pointer for functions to encode CRW entries from Exif tags -using CrwEncodeFct = std::function; +using CrwEncodeFct = void (*)(const Image&, const CrwMapping*, CiffHeader*); //! Stack to hold a path of CRW directories using CrwDirs = std::stack; @@ -505,8 +505,8 @@ struct CrwMapping { size_(size), tag_(tag), ifdId_(ifdId), - toExif_(std::move(toExif)), - fromExif_(std::move(fromExif)) { + toExif_(toExif), + fromExif_(fromExif) { } //@} diff --git a/src/makernote_int.hpp b/src/makernote_int.hpp index 5a8880fa..0d582d17 100644 --- a/src/makernote_int.hpp +++ b/src/makernote_int.hpp @@ -8,8 +8,6 @@ #include "tags_int.hpp" #include "types.hpp" -#include - // namespace extensions namespace Exiv2::Internal { class IoWrapper; @@ -30,10 +28,10 @@ std::string readExiv2Config(const std::string& section, const std::string& value // class definitions //! Type for a pointer to a function creating a makernote (image) -using NewMnFct = std::function; +using NewMnFct = TiffComponent* (*)(uint16_t, IfdId, IfdId, const byte*, size_t, ByteOrder); //! Type for a pointer to a function creating a makernote (group) -using NewMnFct2 = std::function; +using NewMnFct2 = TiffComponent* (*)(uint16_t tag, IfdId group, IfdId mnGroup); //! Makernote registry structure struct TiffMnRegistry { diff --git a/src/tifffwd_int.hpp b/src/tifffwd_int.hpp index 0ab8a780..016ec1c3 100644 --- a/src/tifffwd_int.hpp +++ b/src/tifffwd_int.hpp @@ -9,7 +9,6 @@ #include "types.hpp" // + standard includes -#include #include // ***************************************************************************** @@ -62,17 +61,17 @@ using EncoderFct = void (TiffEncoder::*)(TiffEntryBase*, const Exifdatum*); /*! @brief Type for a function pointer for a function to decode a TIFF component. */ -using FindDecoderFct = std::function; +using FindDecoderFct = DecoderFct (*)(const std::string& make, uint32_t extendedTag, IfdId group); /*! @brief Type for a function pointer for a function to encode a TIFF component. */ -using FindEncoderFct = std::function; +using FindEncoderFct = EncoderFct (*)(const std::string& make, uint32_t extendedTag, IfdId group); /*! @brief Type for a function pointer for a function to create a TIFF component. Use TiffComponent::UniquePtr, it is not used in this declaration only to reduce dependencies. */ -using NewTiffCompFct = std::function(uint16_t tag, IfdId group)>; +using NewTiffCompFct = std::unique_ptr (*)(uint16_t tag, IfdId group); //! Stack to hold a path from the TIFF root element to a TIFF entry using TiffPath = std::stack; diff --git a/src/tiffimage_int.cpp b/src/tiffimage_int.cpp index a4db6106..448f41c1 100644 --- a/src/tiffimage_int.cpp +++ b/src/tiffimage_int.cpp @@ -1363,7 +1363,7 @@ const TiffTreeTable TiffCreator::tiffTreeTable_ = { Each entry of the table defines for a particular tag and group combination the corresponding TIFF component create function. */ -#define ignoreTiffComponent 0 +#define ignoreTiffComponent nullptr const TiffGroupTable TiffCreator::tiffGroupTable_ = { // ext. tag group create function //--------- ----------------- ----------------------------------------- @@ -1987,7 +1987,7 @@ ByteOrder TiffParserWorker::decode(ExifData& exifData, IptcData& iptcData, XmpDa auto rootDir = parse(pData, size, root, pHeader); if (rootDir) { - TiffDecoder decoder(exifData, iptcData, xmpData, rootDir.get(), std::move(findDecoderFct)); + TiffDecoder decoder(exifData, iptcData, xmpData, rootDir.get(), findDecoderFct); rootDir->accept(decoder); } return pHeader->byteOrder(); @@ -1996,7 +1996,7 @@ ByteOrder TiffParserWorker::decode(ExifData& exifData, IptcData& iptcData, XmpDa WriteMethod TiffParserWorker::encode(BasicIo& io, const byte* pData, size_t size, const ExifData& exifData, const IptcData& iptcData, const XmpData& xmpData, uint32_t root, - const FindEncoderFct& findEncoderFct, TiffHeaderBase* pHeader, + FindEncoderFct findEncoderFct, TiffHeaderBase* pHeader, OffsetWriter* pOffsetWriter) { /* 1) parse the binary image, if one is provided, and diff --git a/src/tiffimage_int.hpp b/src/tiffimage_int.hpp index 7fc55da4..8b9ec135 100644 --- a/src/tiffimage_int.hpp +++ b/src/tiffimage_int.hpp @@ -222,7 +222,7 @@ class TiffParserWorker { */ static WriteMethod encode(BasicIo& io, const byte* pData, size_t size, const ExifData& exifData, const IptcData& iptcData, const XmpData& xmpData, uint32_t root, - const FindEncoderFct& findEncoderFct, TiffHeaderBase* pHeader, OffsetWriter* pOffsetWriter); + FindEncoderFct findEncoderFct, TiffHeaderBase* pHeader, OffsetWriter* pOffsetWriter); private: /*! diff --git a/src/tiffvisitor_int.cpp b/src/tiffvisitor_int.cpp index f9ac8f04..72966153 100644 --- a/src/tiffvisitor_int.cpp +++ b/src/tiffvisitor_int.cpp @@ -185,11 +185,7 @@ void TiffCopier::visitBinaryElement(TiffBinaryElement* object) { TiffDecoder::TiffDecoder(ExifData& exifData, IptcData& iptcData, XmpData& xmpData, TiffComponent* pRoot, FindDecoderFct findDecoderFct) : - exifData_(exifData), - iptcData_(iptcData), - xmpData_(xmpData), - pRoot_(pRoot), - findDecoderFct_(std::move(findDecoderFct)) { + exifData_(exifData), iptcData_(iptcData), xmpData_(xmpData), pRoot_(pRoot), findDecoderFct_(findDecoderFct) { // #1402 Fujifilm RAF. Search for the make // Find camera make in existing metadata (read from the JPEG) ExifKey key("Exif.Image.Make"); @@ -452,7 +448,7 @@ TiffEncoder::TiffEncoder(ExifData exifData, const IptcData& iptcData, const XmpD pRoot_(pRoot), isNewImage_(isNewImage), pPrimaryGroups_(pPrimaryGroups), - findEncoderFct_(std::move(findEncoderFct)) { + findEncoderFct_(findEncoderFct) { byteOrder_ = pHeader->byteOrder(); origByteOrder_ = byteOrder_; diff --git a/src/xmp.cpp b/src/xmp.cpp index b65b1186..8dd91bf5 100644 --- a/src/xmp.cpp +++ b/src/xmp.cpp @@ -232,8 +232,7 @@ Exiv2::XmpKey::UniquePtr makeXmpKey(const std::string& schemaNs, const std::stri //! Helper class used to serialize critical sections class AutoLock { public: - AutoLock(Exiv2::XmpParser::XmpLockFct xmpLockFct, void* pLockData) : - xmpLockFct_(std::move(xmpLockFct)), pLockData_(pLockData) { + AutoLock(Exiv2::XmpParser::XmpLockFct xmpLockFct, void* pLockData) : xmpLockFct_(xmpLockFct), pLockData_(pLockData) { if (xmpLockFct_) xmpLockFct_(pLockData_, true); } @@ -515,7 +514,7 @@ void* XmpParser::pLockData_ = nullptr; #ifdef EXV_HAVE_XMP_TOOLKIT bool XmpParser::initialize(XmpParser::XmpLockFct xmpLockFct, void* pLockData) { if (!initialized_) { - xmpLockFct_ = std::move(xmpLockFct); + xmpLockFct_ = xmpLockFct; pLockData_ = pLockData; initialized_ = SXMPMeta::Initialize(); #ifdef EXV_ADOBE_XMPSDK