Coverity scan fixes CID : 982002 through 982054 (all ostream related)

v0.27.3
Mahesh 11 years ago
parent cff1efe122
commit 200c65a380

@ -1374,8 +1374,14 @@ namespace Exiv2 {
const Value& value,
const ExifData* metadata)
{
std::ios::fmtflags f( os.flags() );
if ( !metadata || value.typeId() != unsignedLong
|| value.count() == 0) return os << "(" << value << ")";
|| value.count() == 0)
{
os << "(" << value << ")";
os.flags(f);
return os;
}
ExifData::const_iterator pos = metadata->findKey(ExifKey("Exif.Image.Model"));
if (pos == metadata->end()) return os << "(" << value << ")";
@ -1389,7 +1395,9 @@ namespace Exiv2 {
uint32_t val = value.toLong();
uint32_t dn = (val & 0xffc0) >> 6;
uint32_t fn = ((val >> 16) & 0xff) + ((val & 0x3f) << 8);
return os << std::dec << dn << "-" << std::setw(4) << std::setfill('0') << fn;
os << std::dec << dn << "-" << std::setw(4) << std::setfill('0') << fn;
os.flags(f);
return os;
}
if ( model.find("30D") != std::string::npos
|| model.find("400D") != std::string::npos
@ -1400,9 +1408,12 @@ namespace Exiv2 {
uint32_t dn = (val & 0xffc00) >> 10;
while (dn < 100) dn += 0x40;
uint32_t fn = ((val & 0x3ff) << 4) + ((val >> 20) & 0x0f);
return os << std::dec << dn << "-" << std::setw(4) << std::setfill('0') << fn;
os << std::dec << dn << "-" << std::setw(4) << std::setfill('0') << fn;
os.flags(f);
return os;
}
os.flags(f);
return os << "(" << value << ")";
}
@ -1410,9 +1421,11 @@ namespace Exiv2 {
const Value& value,
const ExifData* metadata)
{
std::ios::fmtflags f( os.flags() );
if ( !metadata
|| value.count() < 4
|| value.typeId() != unsignedShort) {
os.flags(f);
return os << value;
}
@ -1429,10 +1442,12 @@ namespace Exiv2 {
os << std::fixed << std::setprecision(1);
os << fl << " mm";
os.copyfmt(oss);
os.flags(f);
return os;
}
}
os.flags(f);
return os << value;
}
@ -1564,9 +1579,13 @@ namespace Exiv2 {
const Value& value,
const ExifData*)
{
std::ios::fmtflags f( os.flags() );
if ( value.count() < 3
|| value.typeId() != unsignedShort) {
return os << "(" << value << ")";
os << "(" << value << ")";
os.flags(f);
return os;
}
float fu = value.toFloat(2);
@ -1582,6 +1601,7 @@ namespace Exiv2 {
os << len2 << " - " << len1 << " mm";
}
os.copyfmt(oss);
os.flags(f);
return os;
}
@ -1589,11 +1609,13 @@ namespace Exiv2 {
const Value& value,
const ExifData*)
{
std::ios::fmtflags f( os.flags() );
if ( value.typeId() == unsignedShort
&& value.count() > 0) {
// Ported from Exiftool by Will Stokes
os << exp(canonEv(value.toLong()) * log(2.0)) * 100.0 / 32.0;
}
os.flags(f);
return os;
}
@ -1654,6 +1676,7 @@ namespace Exiv2 {
const Value& value,
const ExifData*)
{
std::ios::fmtflags f( os.flags() );
if ( value.typeId() != unsignedShort
|| value.count() == 0) return os << value;
@ -1664,6 +1687,7 @@ namespace Exiv2 {
else {
os << l << "";
}
os.flags(f);
return os;
}
@ -1688,6 +1712,7 @@ namespace Exiv2 {
const Value& value,
const ExifData*)
{
std::ios::fmtflags f( os.flags() );
if ( value.typeId() != unsignedShort
|| value.count() == 0) return os << value;
@ -1696,6 +1721,7 @@ namespace Exiv2 {
if (ur.second > 1) {
os << "/" << ur.second;
}
os.flags(f);
return os << " s";
}
@ -1718,6 +1744,7 @@ namespace Exiv2 {
const Value& value,
const ExifData*)
{
std::ios::fmtflags f( os.flags() );
if ( value.typeId() != signedShort
|| value.count() == 0) return os << value;
@ -1734,6 +1761,7 @@ namespace Exiv2 {
}
os.copyfmt(oss);
os.flags(f);
return os;
}

@ -218,10 +218,12 @@ namespace Exiv2 {
std::ostream& CasioMakerNote::print0x0006(std::ostream& os, const Value& value, const ExifData*)
{
std::ios::fmtflags f( os.flags() );
std::ostringstream oss;
oss.copyfmt(os);
os << std::fixed << std::setprecision(2) << value.toLong() / 1000.0 << _(" m");
os.copyfmt(oss);
os.flags(f);
return os;
}
@ -583,14 +585,18 @@ namespace Exiv2 {
std::ostream& Casio2MakerNote::print0x2022(std::ostream& os, const Value& value, const ExifData*)
{
std::ios::fmtflags f( os.flags() );
if(value.toLong()>=0x20000000)
{
return os << N_("Inf");
os << N_("Inf");
os.flags(f);
return os;
};
std::ostringstream oss;
oss.copyfmt(os);
os << std::fixed << std::setprecision(2) << value.toLong() / 1000.0 << _(" m");
os.copyfmt(oss);
os.flags(f);
return os;
}

@ -660,10 +660,12 @@ namespace Exiv2 {
void CiffHeader::print(std::ostream& os, const std::string& prefix) const
{
std::ios::fmtflags f( os.flags() );
os << prefix
<< _("Header, offset") << " = 0x" << std::setw(8) << std::setfill('0')
<< std::hex << std::right << offset_ << "\n";
if (pRootDir_) pRootDir_->print(os, byteOrder_, prefix);
os.flags(f);
} // CiffHeader::print
void CiffComponent::print(std::ostream& os,

@ -714,8 +714,9 @@ namespace Exiv2 {
std::ostream& operator<<(std::ostream& os, const DataSet& dataSet)
{
std::ios::fmtflags f( os.flags() );
IptcKey iptcKey(dataSet.number_, dataSet.recordId_);
return os << dataSet.name_ << ", "
os << dataSet.name_ << ", "
<< std::dec << dataSet.number_ << ", "
<< "0x" << std::setw(4) << std::setfill('0')
<< std::right << std::hex << dataSet.number_ << ", "
@ -729,6 +730,8 @@ namespace Exiv2 {
IptcDataSets::dataSetType(dataSet.number_,
dataSet.recordId_)) << ", "
<< dataSet.desc_;
os.flags(f);
return os;
}
} // namespace Exiv2

@ -960,22 +960,26 @@ namespace Exiv2 {
{
// From Xavier Raynaud: the value is converted from 0:256 to -5.33:5.33
std::ios::fmtflags f( os.flags() );
std::ostringstream oss;
oss.copyfmt(os);
os << std::fixed << std::setprecision(2)
<< (float (value.toLong()-128)/24);
os.copyfmt(oss);
os.flags(f);
return os;
}
//! Method to convert Minolta Dynax 5D exposure compensation values.
std::ostream& MinoltaMakerNote::printMinoltaExposureCompensation5D(std::ostream& os, const Value& value, const ExifData*)
{
std::ios::fmtflags f( os.flags() );
std::ostringstream oss;
oss.copyfmt(os);
os << std::fixed << std::setprecision(2)
<< (float (value.toLong()-300)/100);
os.copyfmt(oss);
os.flags(f);
return os;
}
@ -2151,10 +2155,13 @@ namespace Exiv2 {
std::ostream& printMinoltaSonyFlashExposureComp(std::ostream& os, const Value& value, const ExifData*)
{
std::ios::fmtflags f( os.flags() );
if (value.count() != 1 || value.typeId() != signedRational) {
return os << "(" << value << ")";
}
return os << std::fixed << std::setprecision(2) << value.toFloat(0) << " EV";
os << std::fixed << std::setprecision(2) << value.toFloat(0) << " EV";
os.flags(f);
return os;
}
}} // namespace Internal, Exiv2

@ -298,6 +298,7 @@ namespace Exiv2 {
const Value& value,
const ExifData*)
{
std::ios::fmtflags f( os.flags() );
Rational distance = value.toRational();
if (distance.first == 0) {
os << _("Unknown");
@ -313,6 +314,7 @@ namespace Exiv2 {
else {
os << "(" << value << ")";
}
os.flags(f);
return os;
}
@ -320,6 +322,7 @@ namespace Exiv2 {
const Value& value,
const ExifData*)
{
std::ios::fmtflags f( os.flags() );
Rational zoom = value.toRational();
if (zoom.first == 0) {
os << _("Not used");
@ -335,6 +338,7 @@ namespace Exiv2 {
else {
os << "(" << value << ")";
}
os.flags(f);
return os;
}
@ -501,6 +505,7 @@ namespace Exiv2 {
const Value& value,
const ExifData*)
{
std::ios::fmtflags f( os.flags() );
Rational zoom = value.toRational();
if (zoom.first == 0) {
os << _("Not used");
@ -516,6 +521,7 @@ namespace Exiv2 {
else {
os << "(" << value << ")";
}
os.flags(f);
return os;
}
@ -1460,6 +1466,7 @@ namespace Exiv2 {
const Value& value,
const ExifData*)
{
std::ios::fmtflags f( os.flags() );
if ( value.count() != 4
|| value.toRational(0).second == 0
|| value.toRational(1).second == 0) {
@ -1485,6 +1492,7 @@ namespace Exiv2 {
<< static_cast<float>(fno2.first) / fno2.second;
}
os.copyfmt(oss);
os.flags(f);
return os;
}
@ -1492,6 +1500,7 @@ namespace Exiv2 {
const Value& value,
const ExifData*)
{
std::ios::fmtflags f( os.flags() );
Rational distance = value.toRational();
if (distance.first == 0) {
os << _("Unknown");
@ -1507,6 +1516,7 @@ namespace Exiv2 {
else {
os << "(" << value << ")";
}
os.flags(f);
return os;
}
@ -1514,6 +1524,7 @@ namespace Exiv2 {
const Value& value,
const ExifData*)
{
std::ios::fmtflags f( os.flags() );
Rational zoom = value.toRational();
if (zoom.first == 0) {
os << _("Not used");
@ -1529,6 +1540,7 @@ namespace Exiv2 {
else {
os << "(" << value << ")";
}
os.flags(f);
return os;
}
@ -2399,14 +2411,18 @@ fmountlens[] = {
const Value& value,
const ExifData*)
{
std::ios::fmtflags f( os.flags() );
if (value.count() != 1 || value.typeId() != unsignedByte) {
return os << "(" << value << ")";
os << "(" << value << ")";
os.flags(f);
return os;
}
double dist = 0.01 * pow(10.0, value.toLong()/40.0);
std::ostringstream oss;
oss.copyfmt(os);
os << std::fixed << std::setprecision(2) << dist << " m";
os.copyfmt(oss);
os.flags(f);
return os;
}
@ -2414,14 +2430,18 @@ fmountlens[] = {
const Value& value,
const ExifData*)
{
std::ios::fmtflags f( os.flags() );
if (value.count() != 1 || value.typeId() != unsignedByte) {
return os << "(" << value << ")";
os << "(" << value << ")";
os.flags(f);
return os;
}
double aperture = pow(2.0, value.toLong()/24.0);
std::ostringstream oss;
oss.copyfmt(os);
os << std::fixed << std::setprecision(1) << "F" << aperture;
os.copyfmt(oss);
os.flags(f);
return os;
}
@ -2444,14 +2464,18 @@ fmountlens[] = {
const Value& value,
const ExifData*)
{
std::ios::fmtflags f( os.flags() );
if (value.count() != 1 || value.typeId() != unsignedByte) {
return os << "(" << value << ")";
os << "(" << value << ")";
os.flags(f);
return os;
}
double fstops = value.toLong()/12.0;
std::ostringstream oss;
oss.copyfmt(os);
os << std::fixed << std::setprecision(1) << "F" << fstops;
os.copyfmt(oss);
os.flags(f);
return os;
}
@ -2459,14 +2483,18 @@ fmountlens[] = {
const Value& value,
const ExifData*)
{
std::ios::fmtflags f( os.flags() );
if (value.count() != 1 || value.typeId() != unsignedByte || value.toLong() == 0) {
return os << "(" << value << ")";
os << "(" << value << ")";
os.flags(f);
return os;
}
double epp = 2048.0/value.toLong();
std::ostringstream oss;
oss.copyfmt(os);
os << std::fixed << std::setprecision(1) << epp << " mm";
os.copyfmt(oss);
os.flags(f);
return os;
}
@ -2474,13 +2502,17 @@ fmountlens[] = {
const Value& value,
const ExifData*)
{
std::ios::fmtflags f( os.flags() );
if (value.count() != 1 || value.typeId() != unsignedByte || value.toLong() == 0 || value.toLong() == 255) {
return os << "(" << value << ")";
os << "(" << value << ")";
os.flags(f);
return os;
}
std::ostringstream oss;
oss.copyfmt(os);
os << std::fixed << std::setprecision(1) << value.toLong() << " mm";
os.copyfmt(oss);
os.flags(f);
return os;
}
@ -2520,8 +2552,11 @@ fmountlens[] = {
const Value& value,
const ExifData*)
{
std::ios::fmtflags f( os.flags() );
if (value.count() != 1 || value.typeId() != signedShort) {
return os << "(" << value << ")";
os << "(" << value << ")";
os.flags(f);
return os;
}
std::ostringstream oss;
oss.copyfmt(os);
@ -2531,6 +2566,7 @@ fmountlens[] = {
os << std::fixed << "UTC " << sign << std::setw(2) << std::setfill('0') << h << ":"
<< std::setw(2) << std::setfill('0') << min;
os.copyfmt(oss);
os.flags(f);
return os;
}

@ -1530,7 +1530,9 @@ namespace Exiv2 {
// Olympus FocusDistance 0x0305
std::ostream& OlympusMakerNote::print0x0305(std::ostream& os, const Value& value, const ExifData*) {
std::ios::fmtflags f( os.flags() );
if (value.count() != 1 || value.typeId() != unsignedRational) {
os.flags(f);
return os << value;
}
@ -1545,6 +1547,7 @@ namespace Exiv2 {
os << (float)distance.first/1000 << " m";
os.copyfmt(oss);
}
os.flags(f);
return os;
}

@ -1010,11 +1010,13 @@ namespace Exiv2 {
std::ostream& PentaxMakerNote::printPentaxTime(std::ostream& os, const Value& value, const ExifData*)
{
std::ios::fmtflags f( os.flags() );
os << std::setw(2) << std::setfill('0') << value.toLong(0);
os << ":";
os << std::setw(2) << std::setfill('0') << value.toLong(1);
os << ":";
os << std::setw(2) << std::setfill('0') << value.toLong(2);
os.flags(f);
return os;
}
@ -1026,24 +1028,30 @@ namespace Exiv2 {
std::ostream& PentaxMakerNote::printPentaxFValue(std::ostream& os, const Value& value, const ExifData*)
{
std::ios::fmtflags f( os.flags() );
os << "F" << std::setprecision(2)
<< static_cast<float>(value.toLong()) / 10;
os.flags(f);
return os;
}
std::ostream& PentaxMakerNote::printPentaxFocalLength(std::ostream& os, const Value& value, const ExifData*)
{
std::ios::fmtflags f( os.flags() );
os << std::fixed << std::setprecision(1)
<< static_cast<float>(value.toLong()) / 100
<< " mm";
os.flags(f);
return os;
}
std::ostream& PentaxMakerNote::printPentaxCompensation(std::ostream& os, const Value& value, const ExifData*)
{
std::ios::fmtflags f( os.flags() );
os << std::setprecision(2)
<< (static_cast<float>(value.toLong()) - 50) / 10
<< " EV";
os.flags(f);
return os;
}
@ -1055,9 +1063,11 @@ namespace Exiv2 {
std::ostream& PentaxMakerNote::printPentaxFlashCompensation(std::ostream& os, const Value& value, const ExifData*)
{
std::ios::fmtflags f( os.flags() );
os << std::setprecision(2)
<< static_cast<float>(value.toLong()) / 256
<< " EV";
os.flags(f);
return os;
}

@ -2290,7 +2290,12 @@ namespace Exiv2 {
for (int i = 0; i < n + 1; ++i) {
const int32_t z = value.toRational(i).first;
const int32_t d = value.toRational(i).second;
if (d == 0) return os << "(" << value << ")";
if (d == 0)
{
os << "(" << value << ")";
os.flags(f);
return os;
}
// Hack: Need Value::toDouble
double b = static_cast<double>(z)/d;
const int p = z % d == 0 ? 0 : prec[i];

Loading…
Cancel
Save