From 6d0cfca1a535bbe5a24208f1bc0d1d262b83dac5 Mon Sep 17 00:00:00 2001 From: Andreas Huggel Date: Mon, 15 Oct 2007 12:51:04 +0000 Subject: [PATCH] Fix: do not clear old XMP packet in case of an error encoding the new XMP data. --- src/jpgimage.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/jpgimage.cpp b/src/jpgimage.cpp index 3d2c6e8d..e2d47211 100644 --- a/src/jpgimage.cpp +++ b/src/jpgimage.cpp @@ -526,11 +526,15 @@ namespace Exiv2 { } } if (writeXmpFromPacket() == false) { - if (XmpParser::encode(xmpPacket_, xmpData_)) { + std::string tmpXmpPacket; + if (XmpParser::encode(tmpXmpPacket, xmpData_)) { #ifndef SUPPRESS_WARNINGS - std::cerr << "Warning: Failed to encode XMP metadata.\n"; + std::cerr << "Error: Failed to encode XMP metadata.\n"; #endif } + else { + xmpPacket_ = tmpXmpPacket; + } } if (xmpPacket_.size() > 0) { // Write APP1 marker, size of APP1 field, XMP id and XMP packet