manual nullptr removals

unique_ptr has a bool overload. It's also easier to reason about.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
Rosen Penev 2022-03-07 00:32:59 -08:00
parent 784cbe2965
commit 8dadcdf72a
25 changed files with 249 additions and 414 deletions

View File

@ -362,7 +362,7 @@ namespace Action {
if (md != exifData.end()) {
md->write(std::cout, &exifData);
rc = 1;
} else if (nullptr != easyAccessFctFallback) {
} else if (easyAccessFctFallback) {
md = easyAccessFctFallback(exifData);
if (md != exifData.end()) {
md->write(std::cout, &exifData);
@ -1337,7 +1337,7 @@ namespace Action {
if (metadatum) {
value = metadatum->getValue();
}
if (value.get() == nullptr || (modifyCmd.explicitType_ && modifyCmd.typeId_ != value->typeId())) {
if (!value || (modifyCmd.explicitType_ && modifyCmd.typeId_ != value->typeId())) {
value = Exiv2::Value::create(modifyCmd.typeId_);
}
int rc = value->read(modifyCmd.value_);
@ -1711,7 +1711,7 @@ namespace {
if (timeStr.length() < 19) return 2;
if ( (timeStr[4] != ':' && timeStr[4] != '-') || (timeStr[7] != ':' && timeStr[7] != '-') || timeStr[10] != ' '
|| timeStr[13] != ':' || timeStr[16] != ':') return 3;
if (nullptr == tm)
if (!tm)
return 4;
std::memset(tm, 0x0, sizeof(struct tm));
tm->tm_isdst = -1;
@ -1745,7 +1745,7 @@ namespace {
std::string tm2Str(const struct tm* tm)
{
if (nullptr == tm)
if (!tm)
return "";
std::ostringstream os;

View File

@ -105,7 +105,7 @@ namespace Util {
if (c == -1) {
break;
}
errcnt_ += option(c, Util::optarg == nullptr ? "" : Util::optarg, Util::optopt);
errcnt_ += option(c, Util::optarg ? Util::optarg : "", Util::optopt);
if (c == '?' ) {
break;
}

View File

@ -99,7 +99,7 @@ try {
v = pos->getValue();
// Downcast the Value pointer to its actual type
auto prv = dynamic_cast<Exiv2::URationalValue*>(v.get());
if (prv == nullptr)
if (!prv)
throw Exiv2::Error(Exiv2::kerErrorMessage, "Downcast failed");
rv = Exiv2::URationalValue(*prv);

View File

@ -162,7 +162,7 @@ namespace Exiv2 {
long offset = std::ftell(fp_);
if (offset == -1) return -1;
// 'Manual' open("r+b") to avoid munmap()
if (fp_ != nullptr) {
if (fp_) {
std::fclose(fp_);
fp_ = nullptr;
}
@ -198,7 +198,7 @@ namespace Exiv2 {
int FileIo::munmap()
{
int rc = 0;
if (p_->pMappedArea_ != nullptr) {
if (p_->pMappedArea_) {
#if defined EXV_HAVE_MMAP && defined EXV_HAVE_MUNMAP
if (::munmap(p_->pMappedArea_, p_->mappedLength_) != 0) {
rc = 1;
@ -221,7 +221,7 @@ namespace Exiv2 {
#endif
}
if (p_->isWriteable_) {
if (p_->fp_ != nullptr)
if (p_->fp_)
p_->switchMode(Impl::opRead);
p_->isWriteable_ = false;
}
@ -480,7 +480,7 @@ namespace Exiv2 {
size_t FileIo::size() const
{
// Flush and commit only if the file is open for writing
if (p_->fp_ != nullptr && (p_->openMode_.at(0) != 'r' || p_->openMode_.at(1) == '+')) {
if (p_->fp_ && (p_->openMode_.at(0) != 'r' || p_->openMode_.at(1) == '+')) {
std::fflush(p_->fp_);
#if defined WIN32 && !defined __CYGWIN__
// This is required on msvcrt before stat after writing to a file
@ -522,7 +522,7 @@ namespace Exiv2 {
int rc = 0;
if (munmap() != 0)
rc = 2;
if (p_->fp_ != nullptr) {
if (p_->fp_) {
if (std::fclose(p_->fp_) != 0)
rc |= 1;
p_->fp_ = nullptr;
@ -560,10 +560,7 @@ namespace Exiv2 {
return getc(p_->fp_);
}
int FileIo::error() const
{
return p_->fp_ != nullptr ? ferror(p_->fp_) : 0;
}
int FileIo::error() const { return p_->fp_ ? ferror(p_->fp_) : 0; }
bool FileIo::eof() const
{
@ -633,7 +630,7 @@ namespace Exiv2 {
//! @param num The size of data
void populate (byte* source, size_t num)
{
assert(source != nullptr);
assert(source);
size_ = num;
data_ = new byte [size_];
type_ = bMemory;
@ -688,10 +685,10 @@ namespace Exiv2 {
// Minimum size for 1st block
size_t size = std::max(blockSize * (1 + need / blockSize), size_);
auto data = static_cast<byte*>(std::malloc(size));
if (data == nullptr) {
if (!data) {
throw Error(kerMallocFailed);
}
if (data_ != nullptr) {
if (data_) {
std::memcpy(data, data_, size_);
}
data_ = data;
@ -706,7 +703,7 @@ namespace Exiv2 {
// Allocate in blocks
size_t want = blockSize * (1 + need / blockSize );
data_ = static_cast<byte*>(std::realloc(data_, want));
if (data_ == nullptr) {
if (!data_) {
throw Error(kerMallocFailed);
}
sizeAlloced_ = want;
@ -736,7 +733,7 @@ namespace Exiv2 {
{
p_->reserve(wcount);
assert(p_->isMalloced_);
if (data != nullptr) {
if (data) {
std::memcpy(&p_->data_[p_->idx_], data, wcount);
}
p_->idx_ += wcount;
@ -1320,7 +1317,7 @@ namespace Exiv2 {
size_t totalRead = 0;
do {
byte* data = p_->blocksMap_[iBlock++].getData();
if (data == nullptr)
if (!data)
data = fakeData;
size_t blockR = std::min(allow, p_->blockSize_ - startPos);
std::memcpy(&buf[totalRead], &data[startPos], blockR);
@ -1845,7 +1842,7 @@ namespace Exiv2 {
size_t curlWriter(char* data, size_t size, size_t nmemb,
std::string* writerData)
{
if (writerData == nullptr)
if (!writerData)
return 0;
writerData->append(data, size*nmemb);
return size * nmemb;

View File

@ -523,7 +523,7 @@ namespace Exiv2 {
if (!prepareXmpTarget(to))
return;
const auto cv = dynamic_cast<const CommentValue*>(&pos->value());
if (cv == nullptr) {
if (!cv) {
#ifndef SUPPRESS_WARNINGS
EXV_WARNING << "Failed to convert " << from << " to " << to << "\n";
#endif

View File

@ -71,7 +71,7 @@ namespace Exiv2 {
#ifdef EXIV2_DEBUG_MESSAGES
std::cerr << "Reading CRW file " << io_->path() << "\n";
#endif
if (io_->open() != 0) {
if (io_->open()) {
throw Error(kerDataSourceOpenFailed, io_->path(), strError());
}
IoCloser closer(*io_);
@ -121,8 +121,8 @@ namespace Exiv2 {
void CrwParser::decode(CrwImage* pCrwImage, const byte* pData, uint32_t size)
{
assert(pCrwImage != 0);
assert(pData != 0);
assert(pCrwImage);
assert(pData);
// Parse the image, starting with a CIFF header component
CiffHeader header;

View File

@ -557,7 +557,7 @@ namespace Exiv2::Internal {
CiffComponent* CiffHeader::findComponent(uint16_t crwTagId,
uint16_t crwDir) const
{
if (pRootDir_ == nullptr)
if (!pRootDir_)
return nullptr;
return pRootDir_->findComponent(crwTagId, crwDir);
} // CiffHeader::findComponent
@ -639,7 +639,7 @@ namespace Exiv2::Internal {
break;
}
}
if (cc_ == nullptr) {
if (!cc_) {
// Directory doesn't exist yet, add it
m_ = std::make_unique<CiffDirectory>(csd.crwDir_, csd.parent_);
cc_ = m_.get();
@ -656,7 +656,7 @@ namespace Exiv2::Internal {
break;
}
}
if (cc_ == nullptr) {
if (!cc_) {
// Tag doesn't exist yet, add it
m_ = std::make_unique<CiffEntry>(crwTagId, tag());
cc_ = m_.get();
@ -952,7 +952,7 @@ namespace Exiv2::Internal {
void CrwMap::encode(CiffHeader* pHead, const Image& image)
{
for (auto&& crw : crwMapping_) {
if (crw.fromExif_ != nullptr) {
if (crw.fromExif_) {
crw.fromExif_(image, &crw, pHead);
}
}

View File

@ -537,7 +537,7 @@ namespace Exiv2 {
void IptcDataSets::dataSetList(std::ostream& os)
{
for (auto&& record : records_) {
for (int j = 0; record != nullptr && record[j].number_ != 0xffff; ++j) {
for (int j = 0; record && record[j].number_ != 0xffff; ++j) {
os << record[j] << "\n";
}
}

View File

@ -166,9 +166,9 @@ namespace Exiv2 {
Exifdatum::Exifdatum(const Exifdatum& rhs)
: Metadatum(rhs)
{
if (rhs.key_.get() != nullptr)
if (rhs.key_)
key_ = rhs.key_->clone(); // deep copy
if (rhs.value_.get() != nullptr)
if (rhs.value_)
value_ = rhs.value_->clone(); // deep copy
}
@ -207,7 +207,7 @@ namespace Exiv2 {
const Value& Exifdatum::value() const
{
if (value_.get() == nullptr)
if (!value_)
throw Error(kerValueNotSet);
return *value_;
}
@ -218,11 +218,11 @@ namespace Exiv2 {
Metadatum::operator=(rhs);
key_.reset();
if (rhs.key_.get() != nullptr)
if (rhs.key_)
key_ = rhs.key_->clone(); // deep copy
value_.reset();
if (rhs.value_.get() != nullptr)
if (rhs.value_)
value_ = rhs.value_->clone(); // deep copy
return *this;
@ -278,72 +278,36 @@ namespace Exiv2 {
int Exifdatum::setValue(const std::string& value)
{
if (value_.get() == nullptr) {
if (!value_) {
TypeId type = key_->defaultTypeId();
value_ = Value::create(type);
}
return value_->read(value);
}
int Exifdatum::setDataArea(const byte* buf, size_t len)
{
return value_.get() == nullptr ? -1 : value_->setDataArea(buf, len);
}
int Exifdatum::setDataArea(const byte* buf, size_t len) { return value_ ? value_->setDataArea(buf, len) : -1; }
std::string Exifdatum::key() const
{
return key_.get() == nullptr ? "" : key_->key();
}
std::string Exifdatum::key() const { return key_ ? key_->key() : ""; }
const char* Exifdatum::familyName() const
{
return key_.get() == nullptr ? "" : key_->familyName();
}
const char* Exifdatum::familyName() const { return key_ ? key_->familyName() : ""; }
std::string Exifdatum::groupName() const
{
return key_.get() == nullptr ? "" : key_->groupName();
}
std::string Exifdatum::groupName() const { return key_ ? key_->groupName() : ""; }
std::string Exifdatum::tagName() const
{
return key_.get() == nullptr ? "" : key_->tagName();
}
std::string Exifdatum::tagName() const { return key_ ? key_->tagName() : ""; }
std::string Exifdatum::tagLabel() const
{
return key_.get() == nullptr ? "" : key_->tagLabel();
}
std::string Exifdatum::tagLabel() const { return key_ ? key_->tagLabel() : ""; }
uint16_t Exifdatum::tag() const
{
return key_.get() == nullptr ? 0xffff : key_->tag();
}
uint16_t Exifdatum::tag() const { return key_ ? key_->tag() : 0xffff; }
int Exifdatum::ifdId() const
{
return key_.get() == nullptr ? ifdIdNotSet : key_->ifdId();
}
int Exifdatum::ifdId() const { return key_ ? key_->ifdId() : ifdIdNotSet; }
const char* Exifdatum::ifdName() const
{
return key_.get() == nullptr ? "" : Internal::ifdName(static_cast<Internal::IfdId>(key_->ifdId()));
}
const char* Exifdatum::ifdName() const { return key_ ? Internal::ifdName(Internal::IfdId(key_->ifdId())) : ""; }
int Exifdatum::idx() const
{
return key_.get() == nullptr ? 0 : key_->idx();
}
int Exifdatum::idx() const { return key_ ? key_->idx() : 0; }
long Exifdatum::copy(byte* buf, ByteOrder byteOrder) const
{
return value_.get() == nullptr ? 0 : value_->copy(buf, byteOrder);
}
long Exifdatum::copy(byte* buf, ByteOrder byteOrder) const { return value_ ? value_->copy(buf, byteOrder) : 0; }
TypeId Exifdatum::typeId() const
{
return value_.get() == nullptr ? invalidTypeId : value_->typeId();
}
TypeId Exifdatum::typeId() const { return value_ ? value_->typeId() : invalidTypeId; }
const char* Exifdatum::typeName() const
{
@ -355,55 +319,25 @@ namespace Exiv2 {
return static_cast<long>(TypeInfo::typeSize(typeId()));
}
size_t Exifdatum::count() const
{
return value_.get() == nullptr ? 0 : value_->count();
}
size_t Exifdatum::count() const { return value_ ? value_->count() : 0; }
long Exifdatum::size() const
{
return value_.get() == nullptr ? 0 : static_cast<long>(value_->size());
}
long Exifdatum::size() const { return value_ ? static_cast<long>(value_->size()) : 0; }
std::string Exifdatum::toString() const
{
return value_.get() == nullptr ? "" : value_->toString();
}
std::string Exifdatum::toString() const { return value_ ? value_->toString() : ""; }
std::string Exifdatum::toString(long n) const
{
return value_.get() == nullptr ? "" : value_->toString(n);
}
std::string Exifdatum::toString(long n) const { return value_ ? value_->toString(n) : ""; }
int64_t Exifdatum::toInt64(long n) const
{
return value_.get() == nullptr ? -1 : value_->toInt64(n);
}
int64_t Exifdatum::toInt64(long n) const { return value_ ? value_->toInt64(n) : -1; }
float Exifdatum::toFloat(long n) const
{
return value_.get() == nullptr ? -1 : value_->toFloat(n);
}
float Exifdatum::toFloat(long n) const { return value_ ? value_->toFloat(n) : -1; }
Rational Exifdatum::toRational(long n) const
{
return value_.get() == nullptr ? Rational(-1, 1) : value_->toRational(n);
}
Rational Exifdatum::toRational(long n) const { return value_ ? value_->toRational(n) : Rational(-1, 1); }
Value::UniquePtr Exifdatum::getValue() const
{
return value_.get() == nullptr ? nullptr : value_->clone();
}
Value::UniquePtr Exifdatum::getValue() const { return value_ ? value_->clone() : nullptr; }
size_t Exifdatum::sizeDataArea() const
{
return value_.get() == nullptr ? 0 : value_->sizeDataArea();
}
size_t Exifdatum::sizeDataArea() const { return value_ ? value_->sizeDataArea() : 0; }
DataBuf Exifdatum::dataArea() const
{
return value_.get() == nullptr ? DataBuf(nullptr, 0) : value_->dataArea();
}
DataBuf Exifdatum::dataArea() const { return value_ ? value_->dataArea() : DataBuf(nullptr, 0); }
ExifThumbC::ExifThumbC(const ExifData& exifData)
: exifData_(exifData)

View File

@ -796,7 +796,7 @@ namespace Exiv2 {
bool ImageFactory::checkType(ImageType type, BasicIo& io, bool advance)
{
const Registry* r = find(registry, type);
if (nullptr != r) {
if (r) {
return r->isThisType_(io, advance);
}
return false;
@ -909,7 +909,7 @@ namespace Exiv2 {
// BasicIo instance does not need to be open
const Registry* r = find(registry, type);
if (r == nullptr || type == ImageType::none) {
if (!r || type == ImageType::none) {
return {};
}
@ -922,7 +922,7 @@ namespace Exiv2 {
void append(Blob& blob, const byte* buf, size_t len)
{
if (len != 0) {
assert(buf != 0);
assert(buf);
Blob::size_type size = blob.size();
if (blob.capacity() - size < len) {
blob.reserve(size + 65536);

View File

@ -105,7 +105,7 @@ int Exiv2::ini_parse_stream(ini_reader reader, void* stream, ini_handler handler
#endif
/* Scan through stream line by line */
while (reader(line, INI_MAX_LINE, stream) != nullptr) {
while (reader(line, INI_MAX_LINE, stream)) {
lineno++;
start = line;

View File

@ -72,66 +72,36 @@ namespace Exiv2 {
Iptcdatum::Iptcdatum(const Iptcdatum& rhs)
: Metadatum(rhs)
{
if (rhs.key_.get() != nullptr)
if (rhs.key_)
key_ = rhs.key_->clone(); // deep copy
if (rhs.value_.get() != nullptr)
if (rhs.value_)
value_ = rhs.value_->clone(); // deep copy
}
long Iptcdatum::copy(byte* buf, ByteOrder byteOrder) const
{
return value_.get() == nullptr ? 0 : value_->copy(buf, byteOrder);
}
long Iptcdatum::copy(byte* buf, ByteOrder byteOrder) const { return value_ ? value_->copy(buf, byteOrder) : 0; }
std::ostream& Iptcdatum::write(std::ostream& os, const ExifData*) const
{
return os << value();
}
std::string Iptcdatum::key() const
{
return key_.get() == nullptr ? "" : key_->key();
}
std::string Iptcdatum::key() const { return key_ ? key_->key() : ""; }
std::string Iptcdatum::recordName() const
{
return key_.get() == nullptr ? "" : key_->recordName();
}
std::string Iptcdatum::recordName() const { return key_ ? key_->recordName() : ""; }
uint16_t Iptcdatum::record() const
{
return key_.get() == nullptr ? 0 : key_->record();
}
uint16_t Iptcdatum::record() const { return key_ ? key_->record() : 0; }
const char* Iptcdatum::familyName() const
{
return key_.get() == nullptr ? "" : key_->familyName();
}
const char* Iptcdatum::familyName() const { return key_ ? key_->familyName() : ""; }
std::string Iptcdatum::groupName() const
{
return key_.get() == nullptr ? "" : key_->groupName();
}
std::string Iptcdatum::groupName() const { return key_ ? key_->groupName() : ""; }
std::string Iptcdatum::tagName() const
{
return key_.get() == nullptr ? "" : key_->tagName();
}
std::string Iptcdatum::tagName() const { return key_ ? key_->tagName() : ""; }
std::string Iptcdatum::tagLabel() const
{
return key_.get() == nullptr ? "" : key_->tagLabel();
}
std::string Iptcdatum::tagLabel() const { return key_ ? key_->tagLabel() : ""; }
uint16_t Iptcdatum::tag() const
{
return key_.get() == nullptr ? 0 : key_->tag();
}
uint16_t Iptcdatum::tag() const { return key_ ? key_->tag() : 0; }
TypeId Iptcdatum::typeId() const
{
return value_.get() == nullptr ? invalidTypeId : value_->typeId();
}
TypeId Iptcdatum::typeId() const { return value_ ? value_->typeId() : invalidTypeId; }
const char* Iptcdatum::typeName() const
{
@ -143,49 +113,25 @@ namespace Exiv2 {
return static_cast<long>(TypeInfo::typeSize(typeId()));
}
size_t Iptcdatum::count() const
{
return value_.get() == nullptr ? 0 : value_->count();
}
size_t Iptcdatum::count() const { return value_ ? value_->count() : 0; }
long Iptcdatum::size() const
{
return value_.get() == nullptr ? 0 : static_cast<long>(value_->size());
}
long Iptcdatum::size() const { return value_ ? static_cast<long>(value_->size()) : 0; }
std::string Iptcdatum::toString() const
{
return value_.get() == nullptr ? "" : value_->toString();
}
std::string Iptcdatum::toString() const { return value_ ? value_->toString() : ""; }
std::string Iptcdatum::toString(long n) const
{
return value_.get() == nullptr ? "" : value_->toString(n);
}
std::string Iptcdatum::toString(long n) const { return value_ ? value_->toString(n) : ""; }
int64_t Iptcdatum::toInt64(long n) const
{
return value_.get() == nullptr ? -1 : value_->toInt64(n);
}
int64_t Iptcdatum::toInt64(long n) const { return value_ ? value_->toInt64(n) : -1; }
float Iptcdatum::toFloat(long n) const
{
return value_.get() == nullptr ? -1 : value_->toFloat(n);
}
float Iptcdatum::toFloat(long n) const { return value_ ? value_->toFloat(n) : -1; }
Rational Iptcdatum::toRational(long n) const
{
return value_.get() == nullptr ? Rational(-1, 1) : value_->toRational(n);
}
Rational Iptcdatum::toRational(long n) const { return value_ ? value_->toRational(n) : Rational(-1, 1); }
Value::UniquePtr Iptcdatum::getValue() const
{
return value_.get() == nullptr ? nullptr : value_->clone();
}
Value::UniquePtr Iptcdatum::getValue() const { return value_ ? value_->clone() : nullptr; }
const Value& Iptcdatum::value() const
{
if (value_.get() == nullptr)
if (!value_)
throw Error(kerValueNotSet);
return *value_;
}
@ -196,11 +142,11 @@ namespace Exiv2 {
Metadatum::operator=(rhs);
key_.reset();
if (rhs.key_.get() != nullptr)
if (rhs.key_)
key_ = rhs.key_->clone(); // deep copy
value_.reset();
if (rhs.value_.get() != nullptr)
if (rhs.value_)
value_ = rhs.value_->clone(); // deep copy
return *this;
@ -234,7 +180,7 @@ namespace Exiv2 {
int Iptcdatum::setValue(const std::string& value)
{
if (value_.get() == nullptr) {
if (!value_) {
TypeId type = IptcDataSets::dataSetType(tag(), record());
value_ = Value::create(type);
}

View File

@ -173,11 +173,8 @@ namespace Exiv2::Internal {
TiffComponent* tc = nullptr;
const TiffMnRegistry* tmr = find(registry_, mnGroup);
if (tmr) {
if (tmr->newMnFct2_ == nullptr) {
if (!tmr->newMnFct2_) {
std::cout << "mnGroup = " << mnGroup << "\n";
}
assert(tmr->newMnFct2_);
@ -1105,7 +1102,7 @@ namespace Exiv2::Internal {
{
if (size < 4) return -1;
const NikonArrayIdx* aix = find(nikonArrayIdx, NikonArrayIdx::Key(tag, reinterpret_cast<const char*>(pData), size));
return aix == nullptr ? -1 : aix->idx_;
return aix ? aix->idx_ : -1;
}
DataBuf nikonCrypt(uint16_t tag, const byte* pData, uint32_t size, TiffComponent* const pRoot)
@ -1114,7 +1111,8 @@ namespace Exiv2::Internal {
if (size < 4) return buf;
const NikonArrayIdx* nci = find(nikonArrayIdx, NikonArrayIdx::Key(tag, reinterpret_cast<const char*>(pData), size));
if (nci == nullptr || nci->start_ == NA || size <= nci->start_) return buf;
if (!nci || nci->start_ == NA || size <= nci->start_)
return buf;
// Find Exif.Nikon3.ShutterCount
TiffFinder finder(0x00a7, nikon3Id);

View File

@ -2621,32 +2621,30 @@ fmountlens[] = {
/* if no meta obj is provided, try to use the value param that *may*
* be the pre-parsed lensid
*/
if (metadata == nullptr)
{
const auto vid = static_cast<unsigned char>(value.toInt64(0));
if (!metadata) {
const auto vid = static_cast<unsigned char>(value.toInt64(0));
/* the 'FMntLens' name is added to the anonymous struct for
* fmountlens[]
*
* remember to name the struct when importing/updating the lens info
* from:
*
* www.rottmerhusen.com/objektives/lensid/files/c-header/fmountlens4.h
*/
const struct FMntLens* pf = fmountlens;
while (pf->lid && pf->lensname) {
if (pf->lid == vid) {
break;
}
++pf;
}
if (pf->lensname == nullptr) {
return os << value;
}
return os << pf->manuf << " " << pf->lensname;
/* the 'FMntLens' name is added to the anonymous struct for
* fmountlens[]
*
* remember to name the struct when importing/updating the lens info
* from:
*
* www.rottmerhusen.com/objektives/lensid/files/c-header/fmountlens4.h
*/
const struct FMntLens* pf = fmountlens;
while (pf->lid && pf->lensname) {
if (pf->lid == vid) {
break;
}
++pf;
}
if (!pf->lensname) {
return os << value;
}
return os << pf->manuf << " " << pf->lensname;
}
byte raw[] = { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 };
@ -2676,7 +2674,7 @@ fmountlens[] = {
}
raw[7] = static_cast<byte>(md->toInt64());
for (int i = 0; fmountlens[i].lensname != nullptr; ++i) {
for (int i = 0; fmountlens[i].lensname; ++i) {
if ( raw[0] == fmountlens[i].lid ) {
// #1034
const std::string undefined("undefined") ;

View File

@ -1630,7 +1630,7 @@ value, const ExifData* metadata)
bool E3_E30model = false;
if (metadata != nullptr) {
if (metadata) {
auto pos = metadata->findKey(ExifKey("Exif.Image.Model"));
if (pos != metadata->end() && pos->count() != 0) {
std::string model = pos->toString();

View File

@ -366,7 +366,7 @@ namespace {
auto loader = loaderList_[id].create_(id, image, loaderList_[id].parIdx_);
if (loader.get() && !loader->valid())
if (loader && !loader->valid())
loader.reset();
return loader;

View File

@ -4025,7 +4025,8 @@ namespace Exiv2 {
{
std::lock_guard<std::mutex> scoped_read_lock(mutex_);
const XmpNsInfo* xn = lookupNsRegistryUnsafe(XmpNsInfo::Prefix(prefix));
if (xn != nullptr) return xn->ns_;
if (xn)
return xn->ns_;
return nsInfoUnsafe(prefix)->ns_;
}
@ -4069,7 +4070,7 @@ namespace Exiv2 {
const XmpPropertyInfo* pl = propertyList(prefix);
if (!pl) return nullptr;
const XmpPropertyInfo* pi = nullptr;
for (int j = 0; pl[j].name_ != nullptr; ++j) {
for (int j = 0; pl[j].name_; ++j) {
if (0 == strcmp(pl[j].name_, property.c_str())) {
pi = pl + j;
break;
@ -4116,7 +4117,7 @@ namespace Exiv2 {
{
const XmpPropertyInfo* pl = propertyList(prefix);
if (pl) {
for (int i = 0; pl[i].name_ != nullptr; ++i) {
for (int i = 0; pl[i].name_; ++i) {
os << pl[i];
}
}

View File

@ -102,7 +102,7 @@ namespace Exiv2 {
const char* ExifTags::sectionName(const ExifKey& key)
{
const TagInfo* ti = tagInfo(key.tag(), static_cast<Internal::IfdId>(key.ifdId()));
if (ti == nullptr)
if (!ti)
return sectionInfo[unknownTag.sectionId_].name_;
return sectionInfo[ti->sectionId_].name_;
}
@ -111,7 +111,7 @@ namespace Exiv2 {
uint16_t ExifTags::defaultCount(const ExifKey& key)
{
const TagInfo* ti = tagInfo(key.tag(), static_cast<Internal::IfdId>(key.ifdId()));
if (ti == nullptr)
if (!ti)
return unknownTag.count_;
return ti->count_;
}
@ -208,7 +208,7 @@ namespace Exiv2 {
// DATA
static constexpr auto familyName_ = "Exif"; //!< "Exif"
const TagInfo* tagInfo_{nullptr}; //!< Tag info
const TagInfo* tagInfo_{}; //!< Tag info
uint16_t tag_{0}; //!< Tag value
IfdId ifdId_{ifdIdNotSet}; //!< The IFD associated with this tag
int idx_{0}; //!< Unique id of the Exif key in the image
@ -218,7 +218,7 @@ namespace Exiv2 {
std::string ExifKey::Impl::tagName() const
{
if (tagInfo_ != nullptr && tagInfo_->tag_ != 0xffff) {
if (tagInfo_ && tagInfo_->tag_ != 0xffff) {
return tagInfo_->name_;
}
std::ostringstream os;
@ -254,7 +254,7 @@ namespace Exiv2 {
uint16_t tag = tagNumber(tn, ifdId);
// Get tag info
tagInfo_ = tagInfo(tag, ifdId);
if (tagInfo_ == nullptr)
if (!tagInfo_)
throw Error(kerInvalidKey, key);
tag_ = tag;
@ -266,7 +266,7 @@ namespace Exiv2 {
void ExifKey::Impl::makeKey(uint16_t tag, IfdId ifdId, const TagInfo* tagInfo)
{
assert(tagInfo != 0);
assert(tagInfo);
tagInfo_ = tagInfo;
tag_ = tag;
@ -283,7 +283,7 @@ namespace Exiv2 {
throw Error(kerInvalidIfdId, ifdId);
}
const TagInfo* ti = tagInfo(tag, ifdId);
if (ti == nullptr) {
if (!ti) {
throw Error(kerInvalidIfdId, ifdId);
}
p_->groupName_ = groupName;
@ -346,21 +346,21 @@ namespace Exiv2 {
std::string ExifKey::tagLabel() const
{
if (p_->tagInfo_ == nullptr || p_->tagInfo_->tag_ == 0xffff)
if (!p_->tagInfo_ || p_->tagInfo_->tag_ == 0xffff)
return "";
return _(p_->tagInfo_->title_);
}
std::string ExifKey::tagDesc() const
{
if (p_->tagInfo_ == nullptr || p_->tagInfo_->tag_ == 0xffff)
if (!p_->tagInfo_ || p_->tagInfo_->tag_ == 0xffff)
return "";
return _(p_->tagInfo_->desc_);
}
TypeId ExifKey::defaultTypeId() const
{
if (p_->tagInfo_ == nullptr)
if (!p_->tagInfo_)
return unknownTag.typeId_;
return p_->tagInfo_->typeId_;
}

View File

@ -2472,7 +2472,7 @@ namespace Exiv2::Internal {
{
bool rc = false;
const GroupInfo* ii = find(groupInfo, ifdId);
if (ii != nullptr && 0 == strcmp(ii->ifdName_, "Makernote")) {
if (ii && 0 == strcmp(ii->ifdName_, "Makernote")) {
rc = true;
}
return rc;
@ -2509,7 +2509,7 @@ namespace Exiv2::Internal {
void taglist(std::ostream& os, IfdId ifdId)
{
const TagInfo* ti = Internal::tagList(ifdId);
if (ti != nullptr) {
if (ti) {
for (int k = 0; ti[k].tag_ != 0xffff; ++k) {
os << ti[k] << "\n";
}
@ -2519,14 +2519,16 @@ namespace Exiv2::Internal {
const TagInfo* tagList(IfdId ifdId)
{
const GroupInfo* ii = find(groupInfo, ifdId);
if (ii == nullptr || ii->tagList_ == nullptr) return nullptr;
if (!ii || !ii->tagList_)
return nullptr;
return ii->tagList_();
} // tagList
const TagInfo* tagInfo(uint16_t tag, IfdId ifdId)
{
const TagInfo* ti = tagList(ifdId);
if (ti == nullptr) return nullptr;
if (!ti)
return nullptr;
int idx = 0;
for (idx = 0; ti[idx].tag_ != 0xffff; ++idx) {
if (ti[idx].tag_ == tag) break;
@ -2537,7 +2539,8 @@ namespace Exiv2::Internal {
const TagInfo* tagInfo(const std::string& tagName, IfdId ifdId)
{
const TagInfo* ti = tagList(ifdId);
if (ti == nullptr) return nullptr;
if (!ti)
return nullptr;
if (tagName.empty()) return nullptr;
const char* tn = tagName.c_str();
for (int idx = 0; ti[idx].tag_ != 0xffff; ++idx) {
@ -2552,21 +2555,24 @@ namespace Exiv2::Internal {
{
IfdId ifdId = ifdIdNotSet;
const GroupInfo* ii = find(groupInfo, GroupInfo::GroupName(groupName));
if (ii != nullptr) ifdId = static_cast<IfdId>(ii->ifdId_);
if (ii)
ifdId = static_cast<IfdId>(ii->ifdId_);
return ifdId;
}
const char* ifdName(IfdId ifdId)
{
const GroupInfo* ii = find(groupInfo, ifdId);
if (ii == nullptr) return groupInfo[0].ifdName_;
if (!ii)
return groupInfo[0].ifdName_;
return ii->ifdName_;
}
const char* groupName(IfdId ifdId)
{
const GroupInfo* ii = find(groupInfo, ifdId);
if (ii == nullptr) return groupInfo[0].groupName_;
if (!ii)
return groupInfo[0].groupName_;
return ii->groupName_;
}
@ -2634,7 +2640,8 @@ namespace Exiv2::Internal {
uint16_t tagNumber(const std::string& tagName, IfdId ifdId)
{
const TagInfo* ti = tagInfo(tagName, ifdId);
if (ti != nullptr && ti->tag_ != 0xffff) return ti->tag_;
if (ti && ti->tag_ != 0xffff)
return ti->tag_;
if (!isHex(tagName, 4, "0x")) throw Error(kerInvalidTag, tagName, ifdId);
std::istringstream is(tagName);
uint16_t tag = 0;
@ -3289,7 +3296,7 @@ namespace Exiv2::Internal {
const TagInfo* tagList(const std::string& groupName)
{
const GroupInfo* ii = find(groupInfo, GroupInfo::GroupName(groupName));
if (ii == nullptr || ii->tagList_ == nullptr) {
if (!ii || !ii->tagList_) {
return nullptr;
}
return ii->tagList_();

View File

@ -39,7 +39,7 @@ namespace Exiv2::Internal {
IoWrapper::IoWrapper(BasicIo& io, const byte* pHeader, size_t size, OffsetWriter* pow)
: io_(io), pHeader_(pHeader), size_(size), wroteHeader_(false), pow_(pow)
{
if (pHeader_ == nullptr || size_ == 0)
if (!pHeader_ || size_ == 0)
wroteHeader_ = true;
}
@ -100,7 +100,7 @@ namespace Exiv2::Internal {
arrayCfg_(arrayCfg),
arrayDef_(arrayDef),
defSize_(defSize) {
assert(arrayCfg != 0);
assert(arrayCfg);
}
TiffBinaryArray::TiffBinaryArray(uint16_t tag, IfdId group, const ArraySet* arraySet, int setSize,
@ -110,8 +110,8 @@ namespace Exiv2::Internal {
arraySet_(arraySet),
setSize_(setSize) {
// We'll figure out the correct cfg later
assert(cfgSelFct != 0);
assert(arraySet_ != 0);
assert(cfgSelFct);
assert(arraySet_);
}
TiffBinaryElement::TiffBinaryElement(uint16_t tag, IfdId group)
@ -273,19 +273,19 @@ namespace Exiv2::Internal {
pData_ = pData;
size_ = size;
storage_ = storage;
if (pData_ == nullptr)
if (!pData_)
size_ = 0;
}
void TiffEntryBase::updateValue(Value::UniquePtr value, ByteOrder byteOrder)
{
if (value.get() == nullptr)
if (!value)
return;
size_t newSize = value->size();
if (newSize > size_) {
setData(std::make_shared<DataBuf>(newSize));
}
if (pData_ != nullptr) {
if (pData_) {
memset(pData_, 0x0, size_);
}
size_ = value->copy(pData_, byteOrder);
@ -295,7 +295,7 @@ namespace Exiv2::Internal {
void TiffEntryBase::setValue(Value::UniquePtr value)
{
if (value.get() == nullptr)
if (!value)
return;
tiffType_ = toTiffType(value->typeId());
count_ = value->count();
@ -475,7 +475,7 @@ namespace Exiv2::Internal {
bool TiffBinaryArray::initialize(IfdId group)
{
if (arrayCfg_ != nullptr)
if (arrayCfg_)
return true; // Not a complex array or already initialized
for (int idx = 0; idx < setSize_; ++idx) {
@ -491,7 +491,7 @@ namespace Exiv2::Internal {
bool TiffBinaryArray::initialize(TiffComponent* const pRoot)
{
if (cfgSelFct_ == nullptr)
if (!cfgSelFct_)
return true; // Not a complex array
int idx = cfgSelFct_(tag(), pData(), TiffEntryBase::doSize(), pRoot);
@ -511,7 +511,7 @@ namespace Exiv2::Internal {
bool TiffBinaryArray::updOrigDataBuf(const byte* pData, uint32_t size)
{
assert(pData != 0);
assert(pData);
if (origSize_ != size) return false;
if (origData_ == pData) return true;
@ -580,18 +580,18 @@ namespace Exiv2::Internal {
}
}
}
if (tc == nullptr) {
if (!tc) {
std::unique_ptr<TiffComponent> atc;
if (tiffPath.size() == 1 && object.get() != nullptr) {
if (tiffPath.size() == 1 && object) {
atc = std::move(object);
} else {
atc = TiffCreator::create(tpi.extendedTag(), tpi.group());
}
assert(atc.get() != 0);
assert(atc);
// Prevent dangling sub-IFD tags: Do not add a sub-IFD component without children.
// Todo: How to check before creating the component?
if (tiffPath.size() == 1 && dynamic_cast<TiffSubIfd*>(atc.get()) != nullptr)
if (tiffPath.size() == 1 && dynamic_cast<TiffSubIfd*>(atc.get()))
return nullptr;
if (tpi.extendedTag() == Tag::next) {
@ -626,8 +626,8 @@ namespace Exiv2::Internal {
break;
}
}
if (tc == nullptr) {
if (tiffPath.size() == 1 && object.get() != nullptr) {
if (!tc) {
if (tiffPath.size() == 1 && object) {
tc = addChild(std::move(object));
} else {
auto atc = std::make_unique<TiffDirectory>(tpi1.tag(), tpi2.group());
@ -652,7 +652,7 @@ namespace Exiv2::Internal {
}
const TiffPathItem tpi2 = tiffPath.top();
tiffPath.push(tpi1);
if (mn_ == nullptr) {
if (!mn_) {
mnGroup_ = tpi2.group();
mn_ = TiffMnCreator::create(tpi1.tag(), tpi1.group(), mnGroup_);
assert(mn_);
@ -694,14 +694,14 @@ namespace Exiv2::Internal {
}
}
}
if (tc == nullptr) {
if (!tc) {
std::unique_ptr<TiffComponent> atc;
if (tiffPath.size() == 1 && object.get() != nullptr) {
if (tiffPath.size() == 1 && object) {
atc = std::move(object);
} else {
atc = TiffCreator::create(tpi.extendedTag(), tpi.group());
}
assert(atc.get() != 0);
assert(atc);
assert(tpi.extendedTag() != Tag::next);
tc = addChild(std::move(atc));
setCount(static_cast<uint32_t>(elements_.size()));
@ -958,7 +958,7 @@ namespace Exiv2::Internal {
uint32_t TiffBinaryArray::doCount() const
{
if (cfg() == nullptr || !decoded())
if (!cfg() || !decoded())
return TiffEntryBase::doCount();
if (elements_.empty()) return 0;
@ -1310,7 +1310,7 @@ namespace Exiv2::Internal {
uint32_t dataIdx,
uint32_t& imageIdx)
{
if (cfg() == nullptr || !decoded())
if (!cfg() || !decoded())
return TiffEntryBase::doWrite(ioWrapper, byteOrder, offset, valueIdx, dataIdx, imageIdx);
if (cfg()->byteOrder_ != invalidByteOrder) byteOrder = cfg()->byteOrder_;
// Tags must be sorted in ascending order
@ -1636,7 +1636,7 @@ namespace Exiv2::Internal {
uint32_t TiffBinaryArray::doSize() const
{
if (cfg() == nullptr || !decoded())
if (!cfg() || !decoded())
return TiffEntryBase::doSize();
if (elements_.empty()) return 0;
@ -1774,7 +1774,7 @@ namespace Exiv2::Internal {
: group == gpsId ? Internal::gpsTagList()
: nullptr;
if ( tags ) {
for (size_t idx = 0; result == nullptr && tags[idx].tag_ != 0xffff; ++idx) {
for (size_t idx = 0; !result && tags[idx].tag_ != 0xffff; ++idx) {
if ( tags[idx].tag_ == tag ) {
result = tags+idx;
}
@ -1819,16 +1819,16 @@ namespace Exiv2::Internal {
bool cmpTagLt(TiffComponent const* lhs, TiffComponent const* rhs)
{
assert(lhs != 0);
assert(rhs != 0);
assert(lhs);
assert(rhs);
if (lhs->tag() != rhs->tag()) return lhs->tag() < rhs->tag();
return lhs->idx() < rhs->idx();
}
bool cmpGroupLt(TiffComponent const* lhs, TiffComponent const* rhs)
{
assert(lhs != 0);
assert(rhs != 0);
assert(lhs);
assert(rhs);
return lhs->group() < rhs->group();
}

View File

@ -2017,7 +2017,7 @@ namespace Exiv2::Internal {
do {
tiffPath.push(TiffPathItem(extendedTag, group));
ts = find(tiffTreeStruct_, TiffTreeStruct::Key(root, group));
assert(ts != 0);
assert(ts);
extendedTag = ts->parentExtTag_;
group = ts->parentGroup_;
} while (!(ts->root_ == root && ts->group_ == ifdIdNotSet));
@ -2102,13 +2102,12 @@ namespace Exiv2::Internal {
parsedTree->accept(copier);
}
// Add entries from metadata to composite
TiffEncoder encoder(exifData, iptcData, xmpData, createdTree.get(), parsedTree == nullptr, &primaryGroups,
pHeader, findEncoderFct);
TiffEncoder encoder(exifData, iptcData, xmpData, createdTree.get(), !parsedTree, &primaryGroups, pHeader,
findEncoderFct);
encoder.add(createdTree.get(), parsedTree.get(), root);
// Write binary representation from the composite tree
DataBuf header = pHeader->write();
auto tempIo = std::make_unique<MemIo>();
assert(tempIo.get() != 0);
IoWrapper ioWrapper(*tempIo, header.c_data(), header.size(), pOffsetWriter);
auto imageIdx(uint32_t(-1));
createdTree->write(ioWrapper,
@ -2138,7 +2137,7 @@ namespace Exiv2::Internal {
TiffHeaderBase* pHeader
)
{
if (pData == nullptr || size == 0)
if (!pData || size == 0)
return nullptr;
if (!pHeader->read(pData, size) || pHeader->offset() >= size) {
throw Error(kerNotAnImage, "TIFF");
@ -2157,7 +2156,7 @@ namespace Exiv2::Internal {
void TiffParserWorker::findPrimaryGroups(PrimaryGroups& primaryGroups, TiffComponent* pSourceDir)
{
if (nullptr == pSourceDir)
if (!pSourceDir)
return;
const IfdId imageGroups[] = {
@ -2180,7 +2179,7 @@ namespace Exiv2::Internal {
TiffFinder finder(0x00fe, imageGroup);
pSourceDir->accept(finder);
auto te = dynamic_cast<TiffEntryBase*>(finder.result());
const Value* pV = te != nullptr ? te->pValue() : nullptr;
const Value* pV = te ? te->pValue() : nullptr;
if (pV && pV->typeId() == unsignedLong && pV->count() == 1 && (pV->toInt64() & 1) == 0) {
primaryGroups.push_back(te->group());
}
@ -2398,7 +2397,7 @@ namespace Exiv2::Internal {
ExifKey key(tag, groupName(group));
#endif
// If there are primary groups and none matches group, we're done
if (pPrimaryGroups != nullptr && !pPrimaryGroups->empty() &&
if (pPrimaryGroups && !pPrimaryGroups->empty() &&
std::find(pPrimaryGroups->begin(), pPrimaryGroups->end(), group) == pPrimaryGroups->end()) {
#ifdef EXIV2_DEBUG_MESSAGES
std::cerr << "Not an image tag: " << key << " (1)\n";
@ -2407,7 +2406,7 @@ namespace Exiv2::Internal {
}
// All tags of marked primary groups other than IFD0 are considered
// image tags. That should take care of NEFs until we know better.
if (pPrimaryGroups != nullptr && !pPrimaryGroups->empty() && group != ifd0Id) {
if (pPrimaryGroups && !pPrimaryGroups->empty() && group != ifd0Id) {
#ifdef EXIV2_DEBUG_MESSAGES
ExifKey key(tag, groupName(group));
std::cerr << "Image tag: " << key << " (2)\n";

View File

@ -167,14 +167,14 @@ namespace Exiv2::Internal {
pHeader_(pHeader),
pPrimaryGroups_(pPrimaryGroups)
{
assert(pRoot_ != 0);
assert(pHeader_ != 0);
assert(pPrimaryGroups_ != 0);
assert(pRoot_);
assert(pHeader_);
assert(pPrimaryGroups_);
}
void TiffCopier::copyObject(TiffComponent* object)
{
assert(object != 0);
assert(object);
if (pHeader_->isImageTag(object->tag(), object->group(), pPrimaryGroups_)) {
auto clone = object->clone();
@ -253,7 +253,7 @@ namespace Exiv2::Internal {
findDecoderFct_(findDecoderFct),
decodedIptc_(false)
{
assert(pRoot != 0);
assert(pRoot);
// #1402 Fujifilm RAF. Search for the make
// Find camera make in existing metadata (read from the JPEG)
@ -309,7 +309,7 @@ namespace Exiv2::Internal {
void TiffDecoder::visitIfdMakernote(TiffIfdMakernote* object)
{
assert(object != 0);
assert(object);
exifData_["Exif.MakerNote.Offset"] = object->mnOffset();
switch (object->byteOrder()) {
@ -502,7 +502,7 @@ namespace Exiv2::Internal {
void TiffDecoder::decodeTiffEntry(const TiffEntryBase* object)
{
assert(object != 0);
assert(object);
// Don't decode the entry if value is not set
if (!object->pValue()) return;
@ -518,7 +518,7 @@ namespace Exiv2::Internal {
void TiffDecoder::decodeStdTiffEntry(const TiffEntryBase* object)
{
assert(object != 0);
assert(object);
ExifKey key(object->tag(), groupName(object->group()));
key.setIdx(object->idx());
exifData_.add(key, object->pValue());
@ -527,7 +527,7 @@ namespace Exiv2::Internal {
void TiffDecoder::visitBinaryArray(TiffBinaryArray* object)
{
if (object->cfg() == nullptr || !object->decoded()) {
if (!object->cfg() || !object->decoded()) {
decodeTiffEntry(object);
}
}
@ -553,9 +553,9 @@ namespace Exiv2::Internal {
dirty_(false),
writeMethod_(wmNonIntrusive)
{
assert(pRoot != 0);
assert(pPrimaryGroups != 0);
assert(pHeader != 0);
assert(pRoot);
assert(pPrimaryGroups);
assert(pHeader);
byteOrder_ = pHeader->byteOrder();
origByteOrder_ = byteOrder_;
@ -699,7 +699,7 @@ namespace Exiv2::Internal {
void TiffEncoder::visitDirectoryNext(TiffDirectory* object)
{
// Update type and count in IFD entries, in case they changed
assert(object != 0);
assert(object);
byte* p = object->start() + 2;
for (auto&& component : object->components_) {
@ -751,7 +751,7 @@ namespace Exiv2::Internal {
void TiffEncoder::visitIfdMakernote(TiffIfdMakernote* object)
{
assert(object != 0);
assert(object);
auto pos = exifData_.findKey(ExifKey("Exif.MakerNote.ByteOrder"));
if (pos != exifData_.end()) {
@ -787,16 +787,16 @@ namespace Exiv2::Internal {
void TiffEncoder::visitBinaryArray(TiffBinaryArray* object)
{
if (object->cfg() == nullptr || !object->decoded()) {
if (!object->cfg() || !object->decoded()) {
encodeTiffComponent(object);
}
}
void TiffEncoder::visitBinaryArrayEnd(TiffBinaryArray* object)
{
assert(object != 0);
assert(object);
if (object->cfg() == nullptr || !object->decoded())
if (!object->cfg() || !object->decoded())
return;
int32_t size = object->TiffEntryBase::doSize();
if (size == 0)
@ -809,7 +809,7 @@ namespace Exiv2::Internal {
if ( cryptFct == sonyTagDecipher ) {
cryptFct = sonyTagEncipher;
}
if (cryptFct != nullptr) {
if (cryptFct) {
const byte* pData = object->pData();
DataBuf buf = cryptFct(object->tag(), pData, size, pRoot_);
if (!buf.empty()) {
@ -841,11 +841,11 @@ namespace Exiv2::Internal {
const Exifdatum* datum
)
{
assert(object != 0);
assert(object);
auto pos = exifData_.end();
const Exifdatum* ed = datum;
if (ed == nullptr) {
if (!ed) {
// Non-intrusive writing: find matching tag
ExifKey key(object->tag(), groupName(object->group()));
pos = exifData_.findKey(key);
@ -1034,8 +1034,8 @@ namespace Exiv2::Internal {
void TiffEncoder::encodeTiffEntryBase(TiffEntryBase* object, const Exifdatum* datum)
{
assert(object != 0);
assert(datum != 0);
assert(object);
assert(datum);
#ifdef EXIV2_DEBUG_MESSAGES
bool tooLarge = false;
@ -1059,8 +1059,8 @@ namespace Exiv2::Internal {
void TiffEncoder::encodeOffsetEntry(TiffEntryBase* object, const Exifdatum* datum)
{
assert(object != 0);
assert(datum != 0);
assert(object);
assert(datum);
uint32_t newSize = datum->size();
if (newSize > object->size_) { // value doesn't fit, encode for intrusive writing
@ -1089,7 +1089,7 @@ namespace Exiv2::Internal {
uint32_t root
)
{
assert(pRootDir != 0);
assert(pRootDir);
writeMethod_ = wmIntrusive;
pSourceTree_ = pSourceDir;
@ -1128,7 +1128,7 @@ namespace Exiv2::Internal {
<< std::hex << i->tag() << "\n";
}
#endif
if (object != nullptr) {
if (object) {
encodeTiffComponent(object, &(*i));
}
}
@ -1170,7 +1170,7 @@ namespace Exiv2::Internal {
{
pState_ = &origState_;
assert(pData_);
assert(size_ > 0);
assert(size_);
} // TiffReader::TiffReader
@ -1181,7 +1181,7 @@ namespace Exiv2::Internal {
void TiffReader::setMnState(const TiffRwState* state)
{
if (state != nullptr) {
if (state) {
// invalidByteOrder indicates 'no change'
if (state->byteOrder() == invalidByteOrder) {
mnState_ = TiffRwState(origState_.byteOrder(), state->baseOffset());
@ -1207,7 +1207,7 @@ namespace Exiv2::Internal {
void TiffReader::readDataEntryBase(TiffDataEntryBase* object)
{
assert(object != 0);
assert(object);
readTiffEntry(object);
TiffFinder finder(object->szTag(), object->szGroup());
@ -1235,7 +1235,7 @@ namespace Exiv2::Internal {
void TiffReader::visitSizeEntry(TiffSizeEntry* object)
{
assert(object != 0);
assert(object);
readTiffEntry(object);
TiffFinder finder(object->dtTag(), object->dtGroup());
@ -1278,7 +1278,7 @@ namespace Exiv2::Internal {
void TiffReader::visitDirectory(TiffDirectory* object)
{
assert(object != 0);
assert(object);
const byte* p = object->start();
assert(p >= pData_);
@ -1337,13 +1337,13 @@ namespace Exiv2::Internal {
if (next) {
tc = TiffCreator::create(Tag::next, object->group());
#ifndef SUPPRESS_WARNINGS
if (tc.get() == nullptr) {
if (!tc) {
EXV_WARNING << "Directory " << groupName(object->group())
<< " has an unexpected next pointer; ignored.\n";
}
#endif
}
if (tc.get()) {
if (tc) {
if (baseOffset() + next > size_) {
#ifndef SUPPRESS_WARNINGS
EXV_ERROR << "Directory " << groupName(object->group())
@ -1360,7 +1360,7 @@ namespace Exiv2::Internal {
void TiffReader::visitSubIfd(TiffSubIfd* object)
{
assert(object != 0);
assert(object);
readTiffEntry(object);
if ( (object->tiffType() == ttUnsignedLong || object->tiffType() == ttSignedLong
@ -1410,7 +1410,7 @@ namespace Exiv2::Internal {
void TiffReader::visitMnEntry(TiffMnEntry* object)
{
assert(object != 0);
assert(object);
readTiffEntry(object);
// Find camera make
@ -1434,7 +1434,7 @@ namespace Exiv2::Internal {
void TiffReader::visitIfdMakernote(TiffIfdMakernote* object)
{
assert(object != 0);
assert(object);
object->setImageByteOrder(byteOrder()); // set the byte order for the image
@ -1472,7 +1472,7 @@ namespace Exiv2::Internal {
void TiffReader::readTiffEntry(TiffEntryBase* object)
{
assert(object != 0);
assert(object);
byte* p = object->start();
assert(p >= pData_);
@ -1597,7 +1597,7 @@ namespace Exiv2::Internal {
void TiffReader::visitBinaryArray(TiffBinaryArray* object)
{
assert(object != 0);
assert(object);
if (!postProc_) {
// Defer reading children until after all other components are read, but
@ -1626,11 +1626,11 @@ namespace Exiv2::Internal {
if (object->TiffEntryBase::doSize() == 0) return;
if (!object->initialize(pRoot_)) return;
const ArrayCfg* cfg = object->cfg();
if (cfg == nullptr)
if (!cfg)
return;
const CryptFct cryptFct = cfg->cryptFct_;
if (cryptFct != nullptr) {
if (cryptFct) {
const byte* pData = object->pData();
int32_t size = object->TiffEntryBase::doSize();
auto buf = std::make_shared<DataBuf>(cryptFct(object->tag(), pData, size, pRoot_));

View File

@ -581,8 +581,8 @@ namespace Exiv2 {
int exifTime(const char* buf, struct tm* tm)
{
assert(buf != 0);
assert(tm != 0);
assert(buf);
assert(tm);
int rc = 1;
int year = 0, mon = 0, mday = 0, hour = 0, min = 0, sec = 0;
int scanned = std::sscanf(buf, "%4d:%2d:%2d %2d:%2d:%2d",

View File

@ -261,7 +261,7 @@ namespace Exiv2 {
if (value_.empty())
return 0;
// byteOrder not needed
assert(buf != 0);
assert(buf);
return static_cast<long>(
value_.copy(reinterpret_cast<char*>(buf), value_.size())
);
@ -465,7 +465,7 @@ namespace Exiv2 {
}
if (c.empty())
return 0;
assert(buf != 0);
assert(buf);
return static_cast<long>(c.copy(reinterpret_cast<char*>(buf), c.size()));
}
@ -486,7 +486,7 @@ namespace Exiv2 {
}
c = value_.substr(8);
if (charsetId() == unicode) {
const char* from = encoding == nullptr || *encoding == '\0' ? detectCharset(c) : encoding;
const char* from = !encoding || *encoding == '\0' ? detectCharset(c) : encoding;
convertStringCharset(c, from, "UTF-8");
}
bool bAscii = charsetId() == undefined || charsetId() == ascii ;

View File

@ -290,9 +290,9 @@ namespace Exiv2 {
Xmpdatum::Impl::Impl(const Impl& rhs)
{
if (rhs.key_.get() != nullptr)
if (rhs.key_)
key_ = rhs.key_->clone(); // deep copy
if (rhs.value_.get() != nullptr)
if (rhs.value_)
value_ = rhs.value_->clone(); // deep copy
}
@ -300,10 +300,10 @@ namespace Exiv2 {
{
if (this == &rhs) return *this;
key_.reset();
if (rhs.key_.get() != nullptr)
if (rhs.key_)
key_ = rhs.key_->clone(); // deep copy
value_.reset();
if (rhs.value_.get() != nullptr)
if (rhs.value_)
value_ = rhs.value_->clone(); // deep copy
return *this;
}
@ -328,40 +328,19 @@ namespace Exiv2 {
Xmpdatum::~Xmpdatum() = default;
std::string Xmpdatum::key() const
{
return p_->key_.get() == nullptr ? "" : p_->key_->key();
}
std::string Xmpdatum::key() const { return p_->key_ ? p_->key_->key() : ""; }
const char* Xmpdatum::familyName() const
{
return p_->key_.get() == nullptr ? "" : p_->key_->familyName();
}
const char* Xmpdatum::familyName() const { return p_->key_ ? p_->key_->familyName() : ""; }
std::string Xmpdatum::groupName() const
{
return p_->key_.get() == nullptr ? "" : p_->key_->groupName();
}
std::string Xmpdatum::groupName() const { return p_->key_ ? p_->key_->groupName() : ""; }
std::string Xmpdatum::tagName() const
{
return p_->key_.get() == nullptr ? "" : p_->key_->tagName();
}
std::string Xmpdatum::tagName() const { return p_->key_ ? p_->key_->tagName() : ""; }
std::string Xmpdatum::tagLabel() const
{
return p_->key_.get() == nullptr ? "" : p_->key_->tagLabel();
}
std::string Xmpdatum::tagLabel() const { return p_->key_ ? p_->key_->tagLabel() : ""; }
uint16_t Xmpdatum::tag() const
{
return p_->key_.get() == nullptr ? 0 : p_->key_->tag();
}
uint16_t Xmpdatum::tag() const { return p_->key_ ? p_->key_->tag() : 0; }
TypeId Xmpdatum::typeId() const
{
return p_->value_.get() == nullptr ? invalidTypeId : p_->value_->typeId();
}
TypeId Xmpdatum::typeId() const { return p_->value_ ? p_->value_->typeId() : invalidTypeId; }
const char* Xmpdatum::typeName() const
{
@ -373,49 +352,25 @@ namespace Exiv2 {
return 0;
}
size_t Xmpdatum::count() const
{
return p_->value_.get() == nullptr ? 0 : p_->value_->count();
}
size_t Xmpdatum::count() const { return p_->value_ ? p_->value_->count() : 0; }
long Xmpdatum::size() const
{
return p_->value_.get() == nullptr ? 0 : static_cast<long>(p_->value_->size());
}
long Xmpdatum::size() const { return p_->value_ ? static_cast<long>(p_->value_->size()) : 0; }
std::string Xmpdatum::toString() const
{
return p_->value_.get() == nullptr ? "" : p_->value_->toString();
}
std::string Xmpdatum::toString() const { return p_->value_ ? p_->value_->toString() : ""; }
std::string Xmpdatum::toString(long n) const
{
return p_->value_.get() == nullptr ? "" : p_->value_->toString(n);
}
std::string Xmpdatum::toString(long n) const { return p_->value_ ? p_->value_->toString(n) : ""; }
int64_t Xmpdatum::toInt64(long n) const
{
return p_->value_.get() == nullptr ? -1 : p_->value_->toInt64(n);
}
int64_t Xmpdatum::toInt64(long n) const { return p_->value_ ? p_->value_->toInt64(n) : -1; }
float Xmpdatum::toFloat(long n) const
{
return p_->value_.get() == nullptr ? -1 : p_->value_->toFloat(n);
}
float Xmpdatum::toFloat(long n) const { return p_->value_ ? p_->value_->toFloat(n) : -1; }
Rational Xmpdatum::toRational(long n) const
{
return p_->value_.get() == nullptr ? Rational(-1, 1) : p_->value_->toRational(n);
}
Rational Xmpdatum::toRational(long n) const { return p_->value_ ? p_->value_->toRational(n) : Rational(-1, 1); }
Value::UniquePtr Xmpdatum::getValue() const
{
return p_->value_.get() == nullptr ? nullptr : p_->value_->clone();
}
Value::UniquePtr Xmpdatum::getValue() const { return p_->value_ ? p_->value_->clone() : nullptr; }
const Value& Xmpdatum::value() const
{
if (p_->value_.get() == nullptr)
if (!p_->value_)
throw Error(kerValueNotSet);
return *p_->value_;
}
@ -451,9 +406,9 @@ namespace Exiv2 {
int Xmpdatum::setValue(const std::string& value)
{
if (p_->value_.get() == nullptr) {
if (!p_->value_) {
TypeId type = xmpText;
if (nullptr != p_->key_.get()) {
if (p_->key_) {
type = XmpProperties::propertyType(*p_->key_.get());
}
p_->value_ = Value::create(type);
@ -916,7 +871,7 @@ namespace Exiv2 {
if (i.typeId() == langAlt) {
// Encode Lang Alt property
const auto la = dynamic_cast<const LangAltValue*>(&i.value());
if (la == nullptr)
if (!la)
throw Error(kerEncodeLangAltPropertyFailed, i.key());
int idx = 1;
@ -934,7 +889,7 @@ namespace Exiv2 {
// Todo: Xmpdatum should have an XmpValue, not a Value
const auto val = dynamic_cast<const XmpValue*>(&i.value());
if (val == nullptr)
if (!val)
throw Error(kerInvalidKeyXmpValue, i.key(), i.typeName());
options = xmpArrayOptionBits(val->xmpArrayType())
| xmpArrayOptionBits(val->xmpStruct());