View | Details | Raw Unified | Return to bug 116126
Collapse All | Expand All

(-)src/ipod/itunesdb/itunesdbparser.cpp (-7 / +10 lines)
Lines 126-146 Link Here
126
            stream >> blocklen;
126
            stream >> blocklen;
127
127
128
            uint datalen = blocklen - 40;
128
            uint datalen = blocklen - 40;
129
            QByteArray buffer( datalen+2 );
130
129
131
            stream >> type;
130
            stream >> type;
132
131
133
            seekRelative(stream, 24);    // skip stuff
134
            stream.readRawBytes(buffer.data(), datalen);
135
            buffer[datalen] = 0;
136
            buffer[datalen + 1] = 0;
137
138
            if( type == itunesdb::MHOD_PLAYLIST)
132
            if( type == itunesdb::MHOD_PLAYLIST)
139
                break;    // ignore
133
                break;    // ignore
140
134
135
            unsigned short* buffer = new unsigned short[ datalen+2/2];
136
137
            seekRelative(stream, 24);    // skip stuff
138
            for ( int i = 0; i < datalen/2; ++i )
139
              stream >> ( Q_UINT16 ) buffer[ i ];
140
141
            buffer[datalen/2]= 0;
142
141
            if( listitem != NULL)
143
            if( listitem != NULL)
142
                listitem->setItemProperty( QString::fromUcs2( (unsigned short *)buffer.data()), (ItemProperty)type);
144
                listitem->setItemProperty( QString::fromUcs2(buffer), (ItemProperty)type);
143
            }
145
            }
146
            delete[] buffer;
144
            break;
147
            break;
145
148
146
        case 0x706C686D: {    // mhlp
149
        case 0x706C686D: {    // mhlp

Return to bug 116126