Remove some private data members not needed to belong to private classes.

This commit is contained in:
Tsuda Kageyu
2015-11-30 15:43:18 +09:00
parent f9e558eef5
commit a6701ddcda
3 changed files with 50 additions and 57 deletions

View File

@ -32,6 +32,12 @@
using namespace TagLib;
using namespace ID3v1;
namespace
{
const ID3v1::StringHandler defaultStringHandler;
const ID3v1::StringHandler *stringHandler = &defaultStringHandler;
}
class ID3v1::Tag::TagPrivate
{
public:
@ -46,13 +52,8 @@ public:
String comment;
uchar track;
uchar genre;
static const StringHandler *stringHandler;
};
static const StringHandler defaultStringHandler;
const ID3v1::StringHandler *ID3v1::Tag::TagPrivate::stringHandler = &defaultStringHandler;
////////////////////////////////////////////////////////////////////////////////
// StringHandler implementation
////////////////////////////////////////////////////////////////////////////////
@ -68,12 +69,10 @@ String ID3v1::StringHandler::parse(const ByteVector &data) const
ByteVector ID3v1::StringHandler::render(const String &s) const
{
if(!s.isLatin1())
{
if(s.isLatin1())
return s.data(String::Latin1);
else
return ByteVector();
}
return s.data(String::Latin1);
}
////////////////////////////////////////////////////////////////////////////////
@ -103,11 +102,11 @@ ByteVector ID3v1::Tag::render() const
ByteVector data;
data.append(fileIdentifier());
data.append(TagPrivate::stringHandler->render(d->title).resize(30));
data.append(TagPrivate::stringHandler->render(d->artist).resize(30));
data.append(TagPrivate::stringHandler->render(d->album).resize(30));
data.append(TagPrivate::stringHandler->render(d->year).resize(4));
data.append(TagPrivate::stringHandler->render(d->comment).resize(28));
data.append(stringHandler->render(d->title).resize(30));
data.append(stringHandler->render(d->artist).resize(30));
data.append(stringHandler->render(d->album).resize(30));
data.append(stringHandler->render(d->year).resize(4));
data.append(stringHandler->render(d->comment).resize(28));
data.append(char(0));
data.append(char(d->track));
data.append(char(d->genre));
@ -202,10 +201,10 @@ void ID3v1::Tag::setGenreNumber(TagLib::uint i)
void ID3v1::Tag::setStringHandler(const StringHandler *handler)
{
if (handler)
TagPrivate::stringHandler = handler;
if(handler)
stringHandler = handler;
else
TagPrivate::stringHandler = &defaultStringHandler;
stringHandler = &defaultStringHandler;
}
////////////////////////////////////////////////////////////////////////////////
@ -231,16 +230,16 @@ void ID3v1::Tag::parse(const ByteVector &data)
{
int offset = 3;
d->title = TagPrivate::stringHandler->parse(data.mid(offset, 30));
d->title = stringHandler->parse(data.mid(offset, 30));
offset += 30;
d->artist = TagPrivate::stringHandler->parse(data.mid(offset, 30));
d->artist = stringHandler->parse(data.mid(offset, 30));
offset += 30;
d->album = TagPrivate::stringHandler->parse(data.mid(offset, 30));
d->album = stringHandler->parse(data.mid(offset, 30));
offset += 30;
d->year = TagPrivate::stringHandler->parse(data.mid(offset, 4));
d->year = stringHandler->parse(data.mid(offset, 4));
offset += 4;
// Check for ID3v1.1 -- Note that ID3v1 *does not* support "track zero" -- this
@ -251,7 +250,7 @@ void ID3v1::Tag::parse(const ByteVector &data)
if(data[offset + 28] == 0 && data[offset + 29] != 0) {
// ID3v1.1 detected
d->comment = TagPrivate::stringHandler->parse(data.mid(offset, 28));
d->comment = stringHandler->parse(data.mid(offset, 28));
d->track = uchar(data[offset + 29]);
}
else

View File

@ -51,6 +51,15 @@
using namespace TagLib;
using namespace ID3v2;
namespace
{
const ID3v2::Latin1StringHandler defaultStringHandler;
const ID3v2::Latin1StringHandler *stringHandler = &defaultStringHandler;
const long MinPaddingSize = 1024;
const long MaxPaddingSize = 1024 * 1024;
}
class ID3v2::Tag::TagPrivate
{
public:
@ -77,19 +86,8 @@ public:
FrameListMap frameListMap;
FrameList frameList;
static const Latin1StringHandler *stringHandler;
};
static const Latin1StringHandler defaultStringHandler;
const ID3v2::Latin1StringHandler *ID3v2::Tag::TagPrivate::stringHandler = &defaultStringHandler;
namespace
{
const long MinPaddingSize = 1024;
const long MaxPaddingSize = 1024 * 1024;
}
////////////////////////////////////////////////////////////////////////////////
// StringHandler implementation
////////////////////////////////////////////////////////////////////////////////
@ -648,15 +646,15 @@ ByteVector ID3v2::Tag::render(int version) const
Latin1StringHandler const *ID3v2::Tag::latin1StringHandler()
{
return TagPrivate::stringHandler;
return stringHandler;
}
void ID3v2::Tag::setLatin1StringHandler(const Latin1StringHandler *handler)
{
if(handler)
TagPrivate::stringHandler = handler;
stringHandler = handler;
else
TagPrivate::stringHandler = &defaultStringHandler;
stringHandler = &defaultStringHandler;
}
////////////////////////////////////////////////////////////////////////////////

View File

@ -31,8 +31,9 @@
using namespace TagLib;
using namespace RIFF::Info;
namespace {
static bool isValidChunkID(const ByteVector &name)
namespace
{
inline bool isValidChunkID(const ByteVector &name)
{
if(name.size() != 4)
return false;
@ -44,17 +45,15 @@ namespace {
return true;
}
const RIFF::Info::StringHandler defaultStringHandler;
const RIFF::Info::StringHandler *stringHandler = &defaultStringHandler;
}
class RIFF::Info::Tag::TagPrivate
{
public:
TagPrivate()
{}
FieldListMap fieldListMap;
static const StringHandler *stringHandler;
};
////////////////////////////////////////////////////////////////////////////////
@ -83,19 +82,16 @@ ByteVector RIFF::Info::StringHandler::render(const String &s) const
// public members
////////////////////////////////////////////////////////////////////////////////
static const StringHandler defaultStringHandler;
const RIFF::Info::StringHandler *RIFF::Info::Tag::TagPrivate::stringHandler = &defaultStringHandler;
RIFF::Info::Tag::Tag(const ByteVector &data)
: TagLib::Tag()
, d(new TagPrivate())
RIFF::Info::Tag::Tag(const ByteVector &data) :
TagLib::Tag(),
d(new TagPrivate())
{
parse(data);
}
RIFF::Info::Tag::Tag()
: TagLib::Tag()
, d(new TagPrivate())
RIFF::Info::Tag::Tag() :
TagLib::Tag(),
d(new TagPrivate())
{
}
@ -222,7 +218,7 @@ ByteVector RIFF::Info::Tag::render() const
FieldListMap::ConstIterator it = d->fieldListMap.begin();
for(; it != d->fieldListMap.end(); ++it) {
ByteVector text = TagPrivate::stringHandler->render(it->second);
ByteVector text = stringHandler->render(it->second);
if(text.isEmpty())
continue;
@ -244,9 +240,9 @@ ByteVector RIFF::Info::Tag::render() const
void RIFF::Info::Tag::setStringHandler(const StringHandler *handler)
{
if(handler)
TagPrivate::stringHandler = handler;
stringHandler = handler;
else
TagPrivate::stringHandler = &defaultStringHandler;
stringHandler = &defaultStringHandler;
}
////////////////////////////////////////////////////////////////////////////////
@ -263,7 +259,7 @@ void RIFF::Info::Tag::parse(const ByteVector &data)
const ByteVector id = data.mid(p, 4);
if(isValidChunkID(id)) {
const String text = TagPrivate::stringHandler->parse(data.mid(p + 8, size));
const String text = stringHandler->parse(data.mid(p + 8, size));
d->fieldListMap[id] = text;
}