Changeset 469 for libcuefile/trunk/src/cue_parse.c
- Timestamp:
- 06/18/11 14:28:43 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcuefile/trunk/src/cue_parse.c
r416 r469 1184 1184 case 6: 1185 1185 #line 115 "cue_parse.y" 1186 { cd_set_catalog(cd, yyvsp[-1].sval); }1186 { cd_set_catalog(cd, yyvsp[-1].sval); free(yyvsp[-1].sval); } 1187 1187 break; 1188 1188 1189 1189 case 7: 1190 1190 #line 116 "cue_parse.y" 1191 { /* ignored */ }1191 { free(yyvsp[-1].sval); /* ignored */ } 1192 1192 break; 1193 1193 … … 1199 1199 free(new_filename); 1200 1200 } 1201 new_filename = strdup(yyvsp[-2].sval);1201 new_filename = yyvsp[-2].sval; /*strdup(yyvsp[-2].sval);*/ 1202 1202 } 1203 1203 break; … … 1212 1212 cdtext = track_get_cdtext(track); 1213 1213 1214 cur_filename = new_filename; 1215 if (NULL != cur_filename) 1216 prev_filename = cur_filename; 1214 if (cur_filename) free(cur_filename); 1215 cur_filename = new_filename ? strdup(new_filename) : 0; 1216 if (NULL != cur_filename) { 1217 if (prev_filename) free(prev_filename); 1218 prev_filename = strdup(cur_filename); 1219 } 1217 1220 1218 1221 if (NULL == prev_filename) … … 1221 1224 track_set_filename(track, prev_filename); 1222 1225 1226 if (new_filename) free(new_filename); 1223 1227 new_filename = NULL; 1224 1228 } … … 1234 1238 case 34: 1235 1239 #line 195 "cue_parse.y" 1236 { track_set_isrc(track, yyvsp[-1].sval); }1240 { track_set_isrc(track, yyvsp[-1].sval); free(yyvsp[-1].sval); } 1237 1241 break; 1238 1242 … … 1278 1282 case 46: 1279 1283 #line 235 "cue_parse.y" 1280 { cdtext_set (yyvsp[-2].ival, yyvsp[-1].sval, cdtext); }1284 { cdtext_set (yyvsp[-2].ival, yyvsp[-1].sval, cdtext); free(yyvsp[-1].sval); } 1281 1285 break; 1282 1286 … … 1519 1523 yydebug = 0; 1520 1524 1521 if (0 == yyparse()) 1522 return cd; 1523 1524 return NULL; 1525 int error = yyparse(); 1526 cue_delete_buffer(); 1527 if (prev_filename) { 1528 free(prev_filename); 1529 prev_filename = 0; 1530 } 1531 if (cur_filename) { 1532 free(cur_filename); 1533 cur_filename = 0; 1534 } 1535 if (new_filename) { 1536 free(new_filename); 1537 new_filename = 0; 1538 } 1539 1540 Cd *res = cd; 1541 if (error) { 1542 cd_delete(cd); 1543 res = 0; 1544 } 1545 cd = 0; 1546 track = 0; 1547 prev_track = 0; 1548 cdtext = 0; 1549 return res; 1525 1550 } 1526 1551
Note: See TracChangeset
for help on using the changeset viewer.