comparison src/madplug/input.c @ 2468:615b67c4e010

Tiny cleanups of repetitive code syndrome madness; Added some null-pointer checks.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 29 Mar 2008 12:06:38 +0200
parents 4ad6e7dfb389
children 2d7b190acc76
comparison
equal deleted inserted replaced
2467:13f021d53367 2468:615b67c4e010
187 *(ret + ret_len) = 0; //terminate 187 *(ret + ret_len) = 0; //terminate
188 ptr = end + 1; 188 ptr = end + 1;
189 } 189 }
190 else if (ptr <= tail && *ptr != 0) { 190 else if (ptr <= tail && *ptr != 0) {
191 // reference to an id3v1 genre code 191 // reference to an id3v1 genre code
192 for(end = ptr; *end != ')' && *end != 0;) { 192 for(tmp_len = 0, end = ptr; *end != ')' && *end != 0;) {
193 end++; 193 end++;
194 tmp_len++;
194 } 195 }
195 196
196 tmp = g_malloc0(BYTES(end - ptr + 1)); 197 tmp = g_malloc0(BYTES(tmp_len + 1));
197 memcpy(tmp, ptr, BYTES(end - ptr)); 198 memcpy(tmp, ptr, BYTES(tmp_len));
198 *(tmp + (end - ptr)) = 0; //terminate 199 *(tmp + tmp_len) = 0; //terminate
199 ptr += end - ptr; 200 ptr += tmp_len;
200 201
201 genre = (id3_ucs4_t *)id3_genre_name((const id3_ucs4_t *)tmp); 202 genre = (id3_ucs4_t *)id3_genre_name((const id3_ucs4_t *)tmp);
202 203
203 g_free(tmp); 204 g_free(tmp);
204 tmp = NULL; 205 tmp = NULL;
205 206
206 tmp_len = mad_ucs4len(genre); 207 if (genre) {
207 208 tmp_len = mad_ucs4len(genre);
208 memcpy(ret + ret_len, genre, BYTES(tmp_len)); 209 memcpy(ret + ret_len, genre, BYTES(tmp_len));
209 210 ret_len += tmp_len;
210 ret_len += tmp_len; 211 }
211 *(ret + ret_len) = 0; //terminate 212 *(ret + ret_len) = 0; //terminate
212 } 213 }
213 } 214 }
214 else { 215 else {
215 for(end = ptr; *end != '(' && *end != 0; ) { 216 for(end = ptr; *end != '(' && *end != 0; ) {
226 tp++; 227 tp++;
227 } 228 }
228 229
229 if(is_num) { 230 if(is_num) {
230 AUDDBG("is_num!\n"); 231 AUDDBG("is_num!\n");
231 232 tmp_len = end - ptr;
232 tmp = g_malloc0(BYTES(end - ptr + 1)); 233 tmp = g_malloc0(BYTES(tmp_len + 1));
233 memcpy(tmp, ptr, BYTES(end - ptr)); 234 memcpy(tmp, ptr, BYTES(tmp_len));
234 *(tmp + (end - ptr)) = 0; //terminate 235 *(tmp + tmp_len) = 0; //terminate
235 ptr += end - ptr; 236 ptr += tmp_len;
236 237
237 genre = (id3_ucs4_t *)id3_genre_name((const id3_ucs4_t *)tmp); 238 genre = (id3_ucs4_t *)id3_genre_name((const id3_ucs4_t *)tmp);
238 AUDDBG("genre length = %d\n", mad_ucs4len(genre)); 239 AUDDBG("genre length = %d\n", mad_ucs4len(genre));
239 240
240 g_free(tmp); 241 g_free(tmp);
241 tmp = NULL; 242 tmp = NULL;
242 243
243 tmp_len = mad_ucs4len(genre); 244 if (genre) {
244 245 tmp_len = mad_ucs4len(genre);
245 memcpy(ret + ret_len, genre, BYTES(tmp_len)); 246 memcpy(ret + ret_len, genre, BYTES(tmp_len));
246 247 ret_len += tmp_len;
247 ret_len += tmp_len; 248 }
248 *(ret + ret_len) = 0; //terminate 249 *(ret + ret_len) = 0; //terminate
249 } 250 }
250 else { // plain text 251 else { // plain text
252 tmp_len = end - ptr;
251 AUDDBG("plain!\n"); 253 AUDDBG("plain!\n");
252 AUDDBG("ret_len = %d\n", ret_len); 254 AUDDBG("ret_len = %d\n", ret_len);
253 AUDDBG("end - ptr = %d\n", BYTES(end - ptr)); 255 AUDDBG("end - ptr = %d\n", BYTES(tmp_len));
254 256
255 memcpy(ret + ret_len, ptr, BYTES(end - ptr)); 257 memcpy(ret + ret_len, ptr, BYTES(tmp_len));
256 ret_len = ret_len + (end - ptr); 258 ret_len = ret_len + tmp_len;
257 *(ret + ret_len) = 0; //terminate 259 *(ret + ret_len) = 0; //terminate
258 ptr += (end - ptr); 260 ptr += tmp_len;
259 } 261 }
260 } 262 }
261 } 263 }
262 return ret; 264 return ret;
263 } 265 }