@@ -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