mirror of
https://github.com/taglib/taglib.git
synced 2026-02-07 07:50:42 -05: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:
@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user