Mercurial > libdvdnav.hg
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; |