diff --git a/samples/addmoddel.cpp b/samples/addmoddel.cpp index 56ed3e71..bc3648b3 100644 --- a/samples/addmoddel.cpp +++ b/samples/addmoddel.cpp @@ -57,7 +57,7 @@ try { std::cout << "Added a few tags the quick way.\n"; // Create a ASCII string value (note the use of create) - Exiv2::Value::UniquePtr v = Exiv2::Value::create(Exiv2::asciiString); + auto v = Exiv2::Value::create(Exiv2::asciiString); // Set the value to a string v->read("1999:12:31 23:59:59"); // Add the value together with its key to the Exif data container @@ -66,16 +66,16 @@ try { std::cout << "Added key \"" << key << "\", value \"" << *v << "\"\n"; // Now create a more interesting value (without using the create method) - Exiv2::URationalValue::UniquePtr rv(new Exiv2::URationalValue); + Exiv2::URationalValue rv; // Set two rational components from a string - rv->read("1/2 1/3"); + rv.read("1/2 1/3"); // Add more elements through the extended interface of rational value - rv->value_.emplace_back(2, 3); - rv->value_.emplace_back(3, 4); + rv.value_.emplace_back(2, 3); + rv.value_.emplace_back(3, 4); // Add the key and value pair to the Exif data key = Exiv2::ExifKey("Exif.Image.PrimaryChromaticities"); - exifData.add(key, rv.get()); - std::cout << "Added key \"" << key << "\", value \"" << *rv << "\"\n"; + exifData.add(key, &rv); + std::cout << "Added key \"" << key << "\", value \"" << rv << "\"\n"; // ************************************************************************* // Modify Exif data @@ -92,18 +92,21 @@ try { // Alternatively, we can use findKey() key = Exiv2::ExifKey("Exif.Image.PrimaryChromaticities"); auto pos = exifData.findKey(key); - if (pos == exifData.end()) throw Exiv2::Error(Exiv2::kerErrorMessage, "Key not found"); + if (pos == exifData.end()) + throw Exiv2::Error(Exiv2::kerErrorMessage, "Key not found"); + // Get a pointer to a copy of the value v = pos->getValue(); // Downcast the Value pointer to its actual type auto prv = dynamic_cast(v.release()); if (prv == nullptr) throw Exiv2::Error(Exiv2::kerErrorMessage, "Downcast failed"); - rv = Exiv2::URationalValue::UniquePtr(prv); + + rv = Exiv2::URationalValue(*prv); // Modify the value directly through the interface of URationalValue - rv->value_.at(2) = {88, 77}; + rv.value_.at(2) = {88, 77}; // Copy the modified value back to the metadatum - pos->setValue(rv.get()); + pos->setValue(&rv); std::cout << "Modified key \"" << key << "\", new value \"" << pos->value() << "\"\n"; diff --git a/samples/iotest.cpp b/samples/iotest.cpp index 3e379e6f..620ce76f 100644 --- a/samples/iotest.cpp +++ b/samples/iotest.cpp @@ -65,8 +65,10 @@ int main(int argc, char* const argv[]) if ( argc >= 5 ) { int blocksize = argc==6 ? atoi(ba) : 10000; // ensure blocksize is sane - if (blocksize>1024*1024) blocksize=10000; - Exiv2::byte* bytes = blocksize > 0 ? new Exiv2::byte[blocksize] : nullptr; + if (blocksize>1024*1024) + blocksize=10000; + + std::vector bytes (blocksize); // copy fileIn from a remote location. BasicIo::UniquePtr io = Exiv2::ImageFactory::createIo(fr); @@ -78,11 +80,11 @@ int main(int argc, char* const argv[]) Error(Exiv2::kerFileOpenFailed, output.path() , "w+b", strError()); } size_t l = 0; - if ( bytes ) { + if ( !bytes.empty() ) { int r ; - while ( (r=io->read(bytes,blocksize)) > 0 ) { + while ( (r=io->read(bytes.data(),blocksize)) > 0 ) { l += r; - output.write(bytes,r) ; + output.write(bytes.data(),r) ; } } else { // read/write byte-wise (#1029) @@ -90,7 +92,6 @@ int main(int argc, char* const argv[]) output.putb(io->getb()) ; } } - delete[] bytes; output.close(); } diff --git a/samples/metacopy.cpp b/samples/metacopy.cpp index fa00b0d7..a43b20f5 100644 --- a/samples/metacopy.cpp +++ b/samples/metacopy.cpp @@ -49,9 +49,9 @@ try { } // Use MemIo to increase test coverage. - Exiv2::BasicIo::UniquePtr fileIo(new Exiv2::FileIo(params.read_)); - Exiv2::BasicIo::UniquePtr memIo(new Exiv2::MemIo); - memIo->transfer(*fileIo); + Exiv2::FileIo fileIo(params.read_); + auto memIo = std::make_unique(); + memIo->transfer(fileIo); Exiv2::Image::UniquePtr readImg = Exiv2::ImageFactory::open(std::move(memIo)); assert(readImg.get() != 0); diff --git a/samples/tiff-test.cpp b/samples/tiff-test.cpp index 6174d92b..dd5e92b5 100644 --- a/samples/tiff-test.cpp +++ b/samples/tiff-test.cpp @@ -91,7 +91,7 @@ void mini1(const char* path) void mini9(const char* path) { - TiffImage tiffImage(BasicIo::UniquePtr(new FileIo(path)), false); + TiffImage tiffImage(std::make_unique(path), false); tiffImage.readMetadata(); std::cout << "MIME type: " << tiffImage.mimeType() << "\n";