mirror of
https://github.com/taglib/taglib.git
synced 2025-05-27 13:10:26 -04:00
clang: fix -Wextra-semi warnings (#1134)
Achieved by adding do/while to mandate a semicolon. Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
parent
7646184d6b
commit
97a74ca3d8
@ -23,45 +23,45 @@
|
||||
#define TAGLIB_MODFILEPRIVATE_H
|
||||
|
||||
// some helper-macros only used internally by (s3m|it|xm)file.cpp
|
||||
#define READ_ASSERT(cond) \
|
||||
if(!(cond)) \
|
||||
{ \
|
||||
setValid(false); \
|
||||
return; \
|
||||
}
|
||||
#define READ_ASSERT(cond) \
|
||||
do { \
|
||||
if(!(cond)) { \
|
||||
setValid(false); \
|
||||
return; \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#define READ(setter,type,read) \
|
||||
{ \
|
||||
type number; \
|
||||
READ_ASSERT(read(number)); \
|
||||
setter(number); \
|
||||
}
|
||||
#define READ(setter, type, read) \
|
||||
do { \
|
||||
type number; \
|
||||
READ_ASSERT(read(number)); \
|
||||
setter(number); \
|
||||
} while(0)
|
||||
|
||||
#define READ_BYTE(setter) READ(setter,unsigned char,readByte)
|
||||
#define READ_U16L(setter) READ(setter,unsigned short,readU16L)
|
||||
#define READ_U32L(setter) READ(setter,unsigned long,readU32L)
|
||||
#define READ_U16B(setter) READ(setter,unsigned short,readU16B)
|
||||
#define READ_U32B(setter) READ(setter,unsigned long,readU32B)
|
||||
#define READ_BYTE(setter) READ(setter, unsigned char, readByte)
|
||||
#define READ_U16L(setter) READ(setter, unsigned short, readU16L)
|
||||
#define READ_U32L(setter) READ(setter, unsigned long, readU32L)
|
||||
#define READ_U16B(setter) READ(setter, unsigned short, readU16B)
|
||||
#define READ_U32B(setter) READ(setter, unsigned long, readU32B)
|
||||
|
||||
#define READ_STRING(setter,size) \
|
||||
{ \
|
||||
String s; \
|
||||
READ_ASSERT(readString(s, size)); \
|
||||
setter(s); \
|
||||
}
|
||||
#define READ_STRING(setter, size) \
|
||||
do { \
|
||||
String s; \
|
||||
READ_ASSERT(readString(s, size)); \
|
||||
setter(s); \
|
||||
} while(0)
|
||||
|
||||
#define READ_AS(type,name,read) \
|
||||
type name = 0; \
|
||||
READ_ASSERT(read(name));
|
||||
#define READ_AS(type, name, read) \
|
||||
type name = 0; \
|
||||
READ_ASSERT(read(name))
|
||||
|
||||
#define READ_BYTE_AS(name) READ_AS(unsigned char,name,readByte)
|
||||
#define READ_U16L_AS(name) READ_AS(unsigned short,name,readU16L)
|
||||
#define READ_U32L_AS(name) READ_AS(unsigned long,name,readU32L)
|
||||
#define READ_U16B_AS(name) READ_AS(unsigned short,name,readU16B)
|
||||
#define READ_U32B_AS(name) READ_AS(unsigned long,name,readU32B)
|
||||
|
||||
#define READ_STRING_AS(name,size) \
|
||||
String name; \
|
||||
READ_ASSERT(readString(name, size));
|
||||
#define READ_BYTE_AS(name) READ_AS(unsigned char, name, readByte)
|
||||
#define READ_U16L_AS(name) READ_AS(unsigned short, name, readU16L)
|
||||
#define READ_U32L_AS(name) READ_AS(unsigned long, name, readU32L)
|
||||
#define READ_U16B_AS(name) READ_AS(unsigned short, name, readU16B)
|
||||
#define READ_U32B_AS(name) READ_AS(unsigned long, name, readU32B)
|
||||
|
||||
#define READ_STRING_AS(name, size) \
|
||||
String name; \
|
||||
READ_ASSERT(readString(name, size))
|
||||
#endif
|
||||
|
@ -32,31 +32,37 @@
|
||||
|
||||
using namespace TagLib;
|
||||
|
||||
#define stringUnion(method) \
|
||||
if(tag(0) && !tag(0)->method().isEmpty()) \
|
||||
return tag(0)->method(); \
|
||||
if(tag(1) && !tag(1)->method().isEmpty()) \
|
||||
return tag(1)->method(); \
|
||||
if(tag(2) && !tag(2)->method().isEmpty()) \
|
||||
return tag(2)->method(); \
|
||||
return String(); \
|
||||
#define stringUnion(method) \
|
||||
do { \
|
||||
if(tag(0) && !tag(0)->method().isEmpty()) \
|
||||
return tag(0)->method(); \
|
||||
if(tag(1) && !tag(1)->method().isEmpty()) \
|
||||
return tag(1)->method(); \
|
||||
if(tag(2) && !tag(2)->method().isEmpty()) \
|
||||
return tag(2)->method(); \
|
||||
return String(); \
|
||||
} while(0)
|
||||
|
||||
#define numberUnion(method) \
|
||||
if(tag(0) && tag(0)->method() > 0) \
|
||||
return tag(0)->method(); \
|
||||
if(tag(1) && tag(1)->method() > 0) \
|
||||
return tag(1)->method(); \
|
||||
if(tag(2) && tag(2)->method() > 0) \
|
||||
return tag(2)->method(); \
|
||||
return 0
|
||||
#define numberUnion(method) \
|
||||
do { \
|
||||
if(tag(0) && tag(0)->method() > 0) \
|
||||
return tag(0)->method(); \
|
||||
if(tag(1) && tag(1)->method() > 0) \
|
||||
return tag(1)->method(); \
|
||||
if(tag(2) && tag(2)->method() > 0) \
|
||||
return tag(2)->method(); \
|
||||
return 0; \
|
||||
} while(0)
|
||||
|
||||
#define setUnion(method, value) \
|
||||
if(tag(0)) \
|
||||
tag(0)->set##method(value); \
|
||||
if(tag(1)) \
|
||||
tag(1)->set##method(value); \
|
||||
if(tag(2)) \
|
||||
tag(2)->set##method(value); \
|
||||
#define setUnion(method, value) \
|
||||
do { \
|
||||
if(tag(0)) \
|
||||
tag(0)->set##method(value); \
|
||||
if(tag(1)) \
|
||||
tag(1)->set##method(value); \
|
||||
if(tag(2)) \
|
||||
tag(2)->set##method(value); \
|
||||
} while(0)
|
||||
|
||||
class TagUnion::TagUnionPrivate
|
||||
{
|
||||
|
@ -38,23 +38,55 @@ using namespace TagLib;
|
||||
class PublicRIFF : public RIFF::File
|
||||
{
|
||||
public:
|
||||
PublicRIFF(FileName file) : RIFF::File(file, BigEndian) {};
|
||||
unsigned int riffSize() { return RIFF::File::riffSize(); };
|
||||
unsigned int chunkCount() { return RIFF::File::chunkCount(); };
|
||||
offset_t chunkOffset(unsigned int i) { return RIFF::File::chunkOffset(i); };
|
||||
unsigned int chunkPadding(unsigned int i) { return RIFF::File::chunkPadding(i); };
|
||||
unsigned int chunkDataSize(unsigned int i) { return RIFF::File::chunkDataSize(i); };
|
||||
ByteVector chunkName(unsigned int i) { return RIFF::File::chunkName(i); };
|
||||
ByteVector chunkData(unsigned int i) { return RIFF::File::chunkData(i); };
|
||||
PublicRIFF(FileName file) : RIFF::File(file, BigEndian)
|
||||
{
|
||||
}
|
||||
unsigned int riffSize()
|
||||
{
|
||||
return RIFF::File::riffSize();
|
||||
}
|
||||
unsigned int chunkCount()
|
||||
{
|
||||
return RIFF::File::chunkCount();
|
||||
}
|
||||
offset_t chunkOffset(unsigned int i)
|
||||
{
|
||||
return RIFF::File::chunkOffset(i);
|
||||
}
|
||||
unsigned int chunkPadding(unsigned int i)
|
||||
{
|
||||
return RIFF::File::chunkPadding(i);
|
||||
}
|
||||
unsigned int chunkDataSize(unsigned int i)
|
||||
{
|
||||
return RIFF::File::chunkDataSize(i);
|
||||
}
|
||||
ByteVector chunkName(unsigned int i)
|
||||
{
|
||||
return RIFF::File::chunkName(i);
|
||||
}
|
||||
ByteVector chunkData(unsigned int i)
|
||||
{
|
||||
return RIFF::File::chunkData(i);
|
||||
}
|
||||
void setChunkData(unsigned int i, const ByteVector &data) {
|
||||
RIFF::File::setChunkData(i, data);
|
||||
}
|
||||
void setChunkData(const ByteVector &name, const ByteVector &data) {
|
||||
RIFF::File::setChunkData(name, data);
|
||||
};
|
||||
TagLib::Tag* tag() const override { return nullptr; };
|
||||
TagLib::AudioProperties* audioProperties() const override { return nullptr;};
|
||||
bool save() override { return false; };
|
||||
}
|
||||
TagLib::Tag *tag() const override
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
TagLib::AudioProperties *audioProperties() const override
|
||||
{
|
||||
return nullptr;
|
||||
}
|
||||
bool save() override
|
||||
{
|
||||
return false;
|
||||
}
|
||||
void removeChunk(unsigned int i) { RIFF::File::removeChunk(i); }
|
||||
void removeChunk(const ByteVector &name) { RIFF::File::removeChunk(name); }
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user