Skip to content

Commit bc6ae71

Browse files
committed
MetaDataICY: use Vector
1 parent 1fc130e commit bc6ae71

File tree

1 file changed

+7
-20
lines changed

1 file changed

+7
-20
lines changed

src/AudioTools/CoreAudio/AudioMetaData/MetaDataICY.h

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,7 @@ class MetaDataICY : public AbstractMetaData {
3535
setIcyMetaInt(metaint);
3636
}
3737

38-
~MetaDataICY(){
39-
if (metaData!=nullptr) delete[]metaData;
40-
}
38+
virtual ~MetaDataICY() {}
4139

4240
/// Defines the ICE metaint value which is provided by the web call!
4341
virtual void setIcyMetaInt(int value) override {
@@ -139,7 +137,7 @@ class MetaDataICY : public AbstractMetaData {
139137
currentStatus = ProcessMetaData;
140138
metaData[metaDataPos++]=ch;
141139
if (metaDataPos>=metaDataLen){
142-
processMetaData(metaData, metaDataLen);
140+
processMetaData(metaData.data(), metaDataLen);
143141
LOGI("Metadata ended")
144142
nextStatus = ProcessData;
145143
}
@@ -152,7 +150,7 @@ class MetaDataICY : public AbstractMetaData {
152150
Status nextStatus = ProcessData;
153151
Status currentStatus = ProcessData;
154152
void (*callback)(MetaDataType info, const char* str, int len) = nullptr;
155-
char* metaData=nullptr;
153+
Vector<char> metaData{0};
156154
int totalData = 0;
157155
int mp3_blocksize = 0;
158156
int metaDataMaxLen = 0;
@@ -168,6 +166,7 @@ class MetaDataICY : public AbstractMetaData {
168166
virtual void clear() {
169167
nextStatus = ProcessData;
170168
totalData = 0;
169+
metaData.resize(0);
171170
metaDataLen = 0;
172171
metaDataPos = 0;
173172
dataLen = 0;
@@ -192,21 +191,9 @@ class MetaDataICY : public AbstractMetaData {
192191
/// allocates the memory to store the metadata / we support changing sizes
193192
virtual void setupMetaData(int meta_size) {
194193
TRACED();
195-
if (meta_size>0){
196-
if (metaData==nullptr){
197-
metaData = new char[meta_size+1];
198-
metaDataMaxLen = meta_size;
199-
LOGD("metaDataMaxLen: %d", metaDataMaxLen);
200-
} else {
201-
if (meta_size>metaDataMaxLen){
202-
delete [] metaData;
203-
metaData = new char[meta_size+1];
204-
metaDataMaxLen = meta_size;
205-
LOGD("metaDataMaxLen: %d", metaDataMaxLen);
206-
}
207-
}
208-
memset(metaData, 0, meta_size);
209-
}
194+
metaData.resize(meta_size+1);
195+
metaDataMaxLen = meta_size;
196+
memset(metaData.data(), 0, meta_size+1);
210197
}
211198

212199
/// e.g. StreamTitle=' House Bulldogs - But your love (Radio Edit)';StreamUrl='';

0 commit comments

Comments
 (0)