Back off of testing for unread TOC. Probably a good idea to do lazy
TOC reading.
This commit is contained in:
@@ -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) 2001 Herbert Valerio Riedel <hvr@gnu.org>
|
||||||
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
Copyright (C) 2002, 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
# include "config.h"
|
# include "config.h"
|
||||||
#endif
|
#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>
|
#include <string.h>
|
||||||
|
|
||||||
@@ -909,6 +909,8 @@ _get_track_green_linux(void *user_data, track_t i_track)
|
|||||||
{
|
{
|
||||||
_img_private_t *env = user_data;
|
_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)
|
if (i_track > (TOTAL_TRACKS+FIRST_TRACK_NUM) || i_track < FIRST_TRACK_NUM)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
Copyright (C) 2003, 2004 Rocky Bernstein <rocky@panix.com>
|
||||||
from vcdimager code:
|
from vcdimager code:
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
#endif
|
#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/sector.h>
|
||||||
#include <cdio/util.h>
|
#include <cdio/util.h>
|
||||||
@@ -88,7 +88,7 @@ typedef struct {
|
|||||||
bool toc_init; /* if true, info below is valid. */
|
bool toc_init; /* if true, info below is valid. */
|
||||||
CDTOC *pTOC;
|
CDTOC *pTOC;
|
||||||
int i_descriptors;
|
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 */
|
track_t i_first_track; /* first track */
|
||||||
lsn_t *pp_lba;
|
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;
|
_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 == 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) {
|
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;
|
_img_private_t *env = user_data;
|
||||||
CDTrackInfo a_track;
|
CDTrackInfo a_track;
|
||||||
|
|
||||||
|
if (!env->toc_init) _cdio_read_toc (env) ;
|
||||||
|
|
||||||
if ( i_track > env->i_last_track || i_track < env->i_first_track )
|
if ( i_track > env->i_last_track || i_track < env->i_first_track )
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user