@@ -390,7 +390,7 @@ class MetaDataID3V2 : public MetaDataID3Base {
390390 const char * actual_tag;
391391 ID3v2FrameString frame_header;
392392 int use_bytes_of_next_write = 0 ;
393- char result[ 256 ] ;
393+ Vector< char > result{ 256 } ;
394394 uint64_t total_len = 0 ;
395395 uint64_t end_len = 0 ;
396396
@@ -440,9 +440,9 @@ class MetaDataID3V2 : public MetaDataID3Base {
440440
441441 // get tag content
442442 if (calcSize (frame_header.size ) <= len){
443- int l = min (calcSize (frame_header.size )-1 , (uint32_t ) 256 );
444- memset (result, 0 , 256 );
445- strncpy ((char *)result, (char *) data+tag_pos+ID3FrameSize, l);
443+ int l = min (calcSize (frame_header.size )-1 , (uint32_t ) result. size () );
444+ memset (result. data (), 0 , result. size () );
445+ strncpy ((char *)result. data () , (char *) data+tag_pos+ID3FrameSize, l);
446446 int checkLen = min (l, 10 );
447447 if (isAscii (checkLen)){
448448 processnotifyAudioChange ();
@@ -461,7 +461,7 @@ class MetaDataID3V2 : public MetaDataID3Base {
461461 int tag_pos = findTag (partial_tag, (const char *) data, len);
462462 memmove (&frame_header, data+tag_pos, sizeof (ID3v2FrameString));
463463 int size = min (len - tag_pos, (size_t ) calcSize (frame_header.size )-1 );
464- strncpy ((char *)result, (char *)data+tag_pos+ID3FrameSize, size);
464+ strncpy ((char *)result. data () , (char *)data+tag_pos+ID3FrameSize, size);
465465 use_bytes_of_next_write = size;
466466 status = PartialTagAtTail;
467467 }
@@ -488,7 +488,7 @@ class MetaDataID3V2 : public MetaDataID3Base {
488488 // / We have the beginning of the metadata and need to process the remainder
489489 void processPartialTagAtTail (const uint8_t * data, size_t len) {
490490 int remainder = calcSize (frame_header.size ) - use_bytes_of_next_write;
491- memcpy (result+use_bytes_of_next_write, data, remainder);
491+ memcpy (result. data () +use_bytes_of_next_write, data, remainder);
492492 processnotifyAudioChange ();
493493
494494 status = TagNotFound;
@@ -511,27 +511,27 @@ class MetaDataID3V2 : public MetaDataID3Base {
511511 if (callback!=nullptr && actual_tag!=nullptr && encodingIsSupported ()){
512512 LOGI (" callback %s" ,actual_tag);
513513 if (memcmp (actual_tag," TALB" ,4 )==0 )
514- callback (Album, result, strnlength (result, 256 ));
514+ callback (Album, result. data (), strnlength (result. data (), result. size () ));
515515 else if (memcmp (actual_tag," TPE1" ,4 )==0 )
516- callback (Artist, result,strnlength (result, 256 ));
516+ callback (Artist, result. data () ,strnlength (result. data (), result. size () ));
517517 else if (memcmp (actual_tag," TOPE" ,4 )==0 )
518- callback (Artist, result,strnlength (result, 256 ));
518+ callback (Artist, result. data () ,strnlength (result. data (), result. size () ));
519519 else if (memcmp (actual_tag," TIT2" ,4 )==0 )
520- callback (Title, result,strnlength (result, 256 ));
520+ callback (Title, result. data () ,strnlength (result. data (), result. size () ));
521521 else if (memcmp (actual_tag," TCON" ,4 )==0 ) {
522522 if (result[0 ]==' (' ){
523523 // convert genre id to string
524- int end_pos = strpos ((char *)result, " )" );
524+ int end_pos = strpos ((char *)result. data () , " )" );
525525 if (end_pos>0 ){
526526 // we just use the first entry
527527 result[end_pos]=0 ;
528- int idx = atoi (result+1 );
528+ int idx = atoi (result. data () +1 );
529529 if (idx>=0 && idx< (int )sizeof (genres)){
530- strncpy ((char *)result, genres[idx],256 );
530+ strncpy ((char *)result. data (), genres[idx], result. size () );
531531 }
532532 }
533533 }
534- callback (Genre, result,strnlength (result, 256 ));
534+ callback (Genre, result. data () ,strnlength (result. data (), result. size () ));
535535 }
536536 }
537537 }
0 commit comments