comparison dvdread/ifo_read.c @ 322:fc94594033a8 src

fix various memleaks, part of ogle-1764
author nicodvb
date Sun, 30 Dec 2007 14:22:32 +0000
parents e9dd884a3054
children e14f453bb208
comparison
equal deleted inserted replaced
321:e9dd884a3054 322:fc94594033a8
255 ifoFree_PGCI_UT(ifofile); 255 ifoFree_PGCI_UT(ifofile);
256 ifoFree_TT_SRPT(ifofile); 256 ifoFree_TT_SRPT(ifofile);
257 ifoFree_FP_PGC(ifofile); 257 ifoFree_FP_PGC(ifofile);
258 ifoFree_PGCIT(ifofile); 258 ifoFree_PGCIT(ifofile);
259 ifoFree_VTS_PTT_SRPT(ifofile); 259 ifoFree_VTS_PTT_SRPT(ifofile);
260 ifoFree_VTS_TMAPT(ifofile);
260 261
261 if(ifofile->vmgi_mat) 262 if(ifofile->vmgi_mat)
262 free(ifofile->vmgi_mat); 263 free(ifofile->vmgi_mat);
263 264
264 if(ifofile->vtsi_mat) 265 if(ifofile->vtsi_mat)
1641 int j; 1642 int j;
1642 for(j = 0; j < i; j++) { 1643 for(j = 0; j < i; j++) {
1643 ifoFree_PGC(pgcit->pgci_srp[j].pgc); 1644 ifoFree_PGC(pgcit->pgci_srp[j].pgc);
1644 free(pgcit->pgci_srp[j].pgc); 1645 free(pgcit->pgci_srp[j].pgc);
1645 } 1646 }
1646 return 0; 1647 goto fail;
1647 } 1648 }
1648 if(!ifoRead_PGC(ifofile, pgcit->pgci_srp[i].pgc, 1649 if(!ifoRead_PGC(ifofile, pgcit->pgci_srp[i].pgc,
1649 offset + pgcit->pgci_srp[i].pgc_start_byte)) { 1650 offset + pgcit->pgci_srp[i].pgc_start_byte)) {
1650 int j; 1651 int j;
1651 for(j = 0; j < i; j++) { 1652 for(j = 0; j < i; j++) {
1652 ifoFree_PGC(pgcit->pgci_srp[j].pgc); 1653 ifoFree_PGC(pgcit->pgci_srp[j].pgc);
1653 free(pgcit->pgci_srp[j].pgc); 1654 free(pgcit->pgci_srp[j].pgc);
1654 } 1655 }
1655 free(pgcit->pgci_srp); 1656 goto fail;
1656 return 0; 1657 }
1657 } 1658 }
1658 } 1659
1659 1660 return 1;
1660 return 1; 1661 fail:
1662 free(pgcit->pgci_srp);
1663 pgcit->pgci_srp = NULL;
1664 return 0;
1661 } 1665 }
1662 1666
1663 static void ifoFree_PGCIT_internal(pgcit_t *pgcit) { 1667 static void ifoFree_PGCIT_internal(pgcit_t *pgcit) {
1664 if(pgcit) { 1668 if(pgcit) {
1665 int i; 1669 int i;