]> granicus.if.org Git - taglib/commitdiff
Define a macro to properly construct std::bitset
authorLukáš Lalinský <lalinsky@gmail.com>
Mon, 24 Jan 2011 07:32:31 +0000 (07:32 +0000)
committerLukáš Lalinský <lalinsky@gmail.com>
Mon, 24 Jan 2011 07:32:31 +0000 (07:32 +0000)
git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib@1216679 283d02a7-25f6-0310-bc7c-ecb5cbfe19da

taglib/ape/apefooter.cpp
taglib/mpc/mpcproperties.cpp
taglib/mpeg/mpegheader.cpp
taglib/toolkit/taglib.h

index 6cef213bf3fa6280feaa2e985c1196eb8e5b9824..0805e9e00c544b8cc294db3b35ed9915581291f5 100644 (file)
@@ -189,7 +189,7 @@ void Footer::parse(const ByteVector &data)
 
   // Read the flags
 
-  std::bitset<32> flags(static_cast<unsigned long>(data.mid(20, 4).toUInt(false)));
+  std::bitset<32> flags(TAGLIB_CONSTRUCT_BITSET(data.mid(20, 4).toUInt(false)));
 
   d->headerPresent = flags[31];
   d->footerPresent = !flags[30];
index b644053b78da5bc5268df8cc1425762b5e0f9095..9adc692465be512c931a8d38eff4ce51c468ecc2 100644 (file)
@@ -113,7 +113,7 @@ void MPC::Properties::read()
   if(d->version >= 7) {
     frames = d->data.mid(4, 4).toUInt(false);
 
-    std::bitset<32> flags(static_cast<unsigned long>(d->data.mid(8, 4).toUInt(false)));
+    std::bitset<32> flags(TAGLIB_CONSTRUCT_BITSET(d->data.mid(8, 4).toUInt(false)));
     d->sampleRate = sftable[flags[17] * 2 + flags[16]];
     d->channels = 2;
   }
index ecd4fc8463b45ebbc7280cf5671e4df73b2b6e04..c715dbc1435bf7884ab8fbb8e221c454c666a05a 100644 (file)
@@ -168,7 +168,7 @@ void MPEG::Header::parse(const ByteVector &data)
     return;
   }
 
-  std::bitset<32> flags(static_cast<unsigned long>(data.toUInt()));
+  std::bitset<32> flags(TAGLIB_CONSTRUCT_BITSET(data.toUInt()));
 
   // Check for the second byte's part of the MPEG synch
 
index 920f1b385d74d009a0980a8fe071f7aa2fbc78c3..811d458401a67624abba9677cf305b97291031e0 100644 (file)
 #define TAGLIB_IGNORE_MISSING_DESTRUCTOR
 #endif
 
+#if (defined(_MSC_VER) && _MSC_VER >= 1600)
+#define TAGLIB_CONSTRUCT_BITSET(x) static_cast<unsigned long long>(x)
+#else
+#define TAGLIB_CONSTRUCT_BITSET(x) static_cast<unsigned long>(x)
+#endif
+
 #include <string>
 
 //! A namespace for all TagLib related classes and functions