|
|
@ -52,7 +52,6 @@ EXIV2_RCSID("@(#) $Id$")
|
|
|
|
#include <iostream>
|
|
|
|
#include <iostream>
|
|
|
|
#include <iomanip>
|
|
|
|
#include <iomanip>
|
|
|
|
#include <cassert>
|
|
|
|
#include <cassert>
|
|
|
|
#include <set>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// *****************************************************************************
|
|
|
|
// *****************************************************************************
|
|
|
|
// class member definitions
|
|
|
|
// class member definitions
|
|
|
@ -375,10 +374,7 @@ namespace Exiv2 {
|
|
|
|
|
|
|
|
|
|
|
|
void TiffDecoder::setExifTag(const ExifKey& key, const Value* pValue, Prio prio)
|
|
|
|
void TiffDecoder::setExifTag(const ExifKey& key, const Value* pValue, Prio prio)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
typedef std::set<std::string> PriorityKeys;
|
|
|
|
bool isRegPrioTag = (priorityKeys_.find(key.key()) != priorityKeys_.end());
|
|
|
|
static PriorityKeys priorityKeys;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool isRegPrioTag = (priorityKeys.find(key.key()) != priorityKeys.end());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
switch (prio) {
|
|
|
|
switch (prio) {
|
|
|
|
case pvNormal:
|
|
|
|
case pvNormal:
|
|
|
@ -388,7 +384,7 @@ namespace Exiv2 {
|
|
|
|
case pvHigh:
|
|
|
|
case pvHigh:
|
|
|
|
// Register the key as a high prio tag, erase low prio tags, add this
|
|
|
|
// Register the key as a high prio tag, erase low prio tags, add this
|
|
|
|
if (!isRegPrioTag) {
|
|
|
|
if (!isRegPrioTag) {
|
|
|
|
priorityKeys.insert(key.key());
|
|
|
|
priorityKeys_.insert(key.key());
|
|
|
|
ExifData::iterator pos = exifData_.findKey(key);
|
|
|
|
ExifData::iterator pos = exifData_.findKey(key);
|
|
|
|
while (pos != exifData_.end()) {
|
|
|
|
while (pos != exifData_.end()) {
|
|
|
|
exifData_.erase(pos);
|
|
|
|
exifData_.erase(pos);
|
|
|
|