diff --git a/src/datasets.cpp b/src/datasets.cpp index 8cb09fed..52cec681 100644 --- a/src/datasets.cpp +++ b/src/datasets.cpp @@ -638,7 +638,7 @@ namespace Exiv2 { std::string::size_type pos1 = key_.find('.'); if (pos1 == std::string::npos) throw Error(6, key_); std::string familyName = key_.substr(0, pos1); - if (familyName != std::string(familyName_)) { + if (0 != strcmp(familyName.c_str(), familyName_)) { throw Error(6, key_); } std::string::size_type pos0 = pos1 + 1; diff --git a/src/properties.cpp b/src/properties.cpp index bbdca2ee..cf16d70e 100644 --- a/src/properties.cpp +++ b/src/properties.cpp @@ -54,7 +54,7 @@ namespace { //! Comparison operator for key bool operator==(const std::string& key) const { - return std::string(key_) == key; + return 0 == strcmp(key_, key.c_str()); } const char* key_; //!< XMP key @@ -809,7 +809,7 @@ namespace Exiv2 { if (!pl) return 0; const XmpPropertyInfo* pi = 0; for (int i = 0; pl[i].name_ != 0; ++i) { - if (std::string(pl[i].name_) == key.tagName()) { + if (0 == strcmp(pl[i].name_, key.tagName().c_str()) { pi = pl + i; break; } @@ -970,7 +970,7 @@ namespace Exiv2 { std::string::size_type pos1 = key.find('.'); if (pos1 == std::string::npos) throw Error(6, key); std::string familyName = key.substr(0, pos1); - if (familyName != std::string(familyName_)) { + if (0 != strcmp(familyName.c_str(), familyName_)) { throw Error(6, key); } std::string::size_type pos0 = pos1 + 1; diff --git a/src/tags.cpp b/src/tags.cpp index 54c0d06d..9aeaf5f6 100644 --- a/src/tags.cpp +++ b/src/tags.cpp @@ -80,7 +80,7 @@ namespace Exiv2 { { const char* i = item.i_.c_str(); if (i == 0) return false; - return (strlen(i) == strlen(item_) && 0 == strcmp(i, item_)); + return 0 == strcmp(i, item_); } // Important: IFD item must be unique! @@ -1625,8 +1625,7 @@ namespace Exiv2 { const char* tn = tagName.c_str(); if (tn == 0) return 0; for (int idx = 0; ti[idx].tag_ != 0xffff; ++idx) { - if ( strlen(ti[idx].name_) == strlen(tn) - && strcmp(ti[idx].name_, tn) == 0) { + if (0 == strcmp(ti[idx].name_, tn)) { return &ti[idx]; } } @@ -1874,7 +1873,7 @@ namespace Exiv2 { std::string::size_type pos1 = key_.find('.'); if (pos1 == std::string::npos) throw Error(6, key_); std::string familyName = key_.substr(0, pos1); - if (familyName != std::string(familyName_)) { + if (0 != strcmp(familyName.c_str(), familyName_)) { throw Error(6, key_); } std::string::size_type pos0 = pos1 + 1;