Back off of testing for unread TOC. Probably a good idea to do lazy

TOC reading.
This commit is contained in:
rocky
2004-06-06 11:25:13 +00:00
parent b3f588e60b
commit eed4e28a19
2 changed files with 11 additions and 5 deletions

View File

@@ -1,5 +1,5 @@
/*
$Id: _cdio_linux.c,v 1.51 2004/06/06 10:50:55 rocky Exp $
$Id: _cdio_linux.c,v 1.52 2004/06/06 11:25:13 rocky Exp $
Copyright (C) 2001 Herbert Valerio Riedel <hvr@gnu.org>
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
@@ -27,7 +27,7 @@
# include "config.h"
#endif
static const char _rcsid[] = "$Id: _cdio_linux.c,v 1.51 2004/06/06 10:50:55 rocky Exp $";
static const char _rcsid[] = "$Id: _cdio_linux.c,v 1.52 2004/06/06 11:25:13 rocky Exp $";
#include <string.h>
@@ -909,6 +909,8 @@ _get_track_green_linux(void *user_data, track_t i_track)
{
_img_private_t *env = user_data;
if (!env->gen.toc_init) _cdio_read_toc (env) ;
if (i_track > (TOTAL_TRACKS+FIRST_TRACK_NUM) || i_track < FIRST_TRACK_NUM)
return false;

View File

@@ -1,5 +1,5 @@
/*
$Id: _cdio_osx.c,v 1.31 2004/06/06 10:50:55 rocky Exp $
$Id: _cdio_osx.c,v 1.32 2004/06/06 11:25:13 rocky Exp $
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
from vcdimager code:
@@ -33,7 +33,7 @@
#include "config.h"
#endif
static const char _rcsid[] = "$Id: _cdio_osx.c,v 1.31 2004/06/06 10:50:55 rocky Exp $";
static const char _rcsid[] = "$Id: _cdio_osx.c,v 1.32 2004/06/06 11:25:13 rocky Exp $";
#include <cdio/sector.h>
#include <cdio/util.h>
@@ -88,7 +88,7 @@ typedef struct {
bool toc_init; /* if true, info below is valid. */
CDTOC *pTOC;
int i_descriptors;
track_t i_tracks; /* number of tracks */
track_t i_last_track; /* highest track number */
track_t i_first_track; /* first track */
lsn_t *pp_lba;
@@ -486,6 +486,8 @@ _get_track_lba_osx(void *user_data, track_t i_track)
{
_img_private_t *env = user_data;
if (!env->toc_init) _cdio_read_toc (env) ;
if (i_track == CDIO_CDROM_LEADOUT_TRACK) i_track = env->i_last_track+1;
if (i_track > env->i_last_track + 1 || i_track < env->i_first_track) {
@@ -677,6 +679,8 @@ _get_track_green_osx(void *user_data, track_t i_track)
_img_private_t *env = user_data;
CDTrackInfo a_track;
if (!env->toc_init) _cdio_read_toc (env) ;
if ( i_track > env->i_last_track || i_track < env->i_first_track )
return false;