shithub: libdvdcss

Download patch

ref: 7de33d1293d14c57579f162670586292d90995fa
parent: 90a9da373db4ac33cf45acf1db92f427a3111e7d
author: Diego Biurrun <diego@biurrun.de>
date: Wed Nov 12 18:42:15 EST 2014

Eliminate unnecessary i_read_fd / i_raw_fd indirections.

There is no need to employ separate file descriptors.

--- a/src/device.c
+++ b/src/device.c
@@ -392,9 +392,9 @@
 #ifdef DVDCSS_RAW_OPEN
 int dvdcss_raw_open ( dvdcss_t dvdcss, const char *psz_device )
 {
-    dvdcss->i_raw_fd = open( psz_device, 0 );
+    int i_fd = open( psz_device, 0 );
 
-    if( dvdcss->i_raw_fd == -1 )
+    if( i_fd == -1 )
     {
         print_debug( dvdcss, "cannot open %s (%s)",
                              psz_device, strerror(errno) );
@@ -403,7 +403,7 @@
     }
     else
     {
-        dvdcss->i_read_fd = dvdcss->i_raw_fd;
+        dvdcss->i_fd = i_fd;
     }
 
     return 0;
@@ -431,14 +431,6 @@
 #else
     close( dvdcss->i_fd );
 
-#ifdef DVDCSS_RAW_OPEN
-    if( dvdcss->i_raw_fd >= 0 )
-    {
-        close( dvdcss->i_raw_fd );
-        dvdcss->i_raw_fd = -1;
-    }
-#endif
-
     return 0;
 #endif
 }
@@ -450,7 +442,7 @@
  *****************************************************************************/
 static int libc_open ( dvdcss_t dvdcss, const char *psz_device )
 {
-    dvdcss->i_fd = dvdcss->i_read_fd = open( psz_device, O_BINARY );
+    dvdcss->i_fd = open( psz_device, O_BINARY );
 
     if( dvdcss->i_fd == -1 )
     {
@@ -526,7 +518,7 @@
 
     setmode( hfile, O_BINARY );
 
-    dvdcss->i_fd = dvdcss->i_read_fd = hfile;
+    dvdcss->i_fd = hfile;
 
     dvdcss->i_pos = 0;
 
@@ -548,7 +540,7 @@
     }
 
     i_seek = (off_t)i_blocks * (off_t)DVDCSS_BLOCK_SIZE;
-    i_seek = lseek( dvdcss->i_read_fd, i_seek, SEEK_SET );
+    i_seek = lseek( dvdcss->i_fd, i_seek, SEEK_SET );
 
     if( i_seek < 0 )
     {
@@ -599,7 +591,7 @@
     off_t i_size, i_ret, i_ret_blocks;
 
     i_size = (off_t)i_blocks * (off_t)DVDCSS_BLOCK_SIZE;
-    i_ret = read( dvdcss->i_read_fd, p_buffer, i_size );
+    i_ret = read( dvdcss->i_fd, p_buffer, i_size );
 
     if( i_ret < 0 )
     {
@@ -708,7 +700,7 @@
     dvdcss->i_pos += i_total;
     return i_total;
 #else
-    int i_read = readv( dvdcss->i_read_fd, p_iovec, i_blocks );
+    int i_read = readv( dvdcss->i_fd, p_iovec, i_blocks );
 
     if( i_read < 0 )
     {
--- a/src/libdvdcss.c
+++ b/src/libdvdcss.c
@@ -473,9 +473,6 @@
     }
 
     /* Initialize structure with default values. */
-#ifdef DVDCSS_RAW_OPEN
-    dvdcss->i_raw_fd = -1;
-#endif
     dvdcss->p_titles = NULL;
     dvdcss->psz_device = strdup( psz_target );
     dvdcss->psz_error = "no error";
--- a/src/libdvdcss.h
+++ b/src/libdvdcss.h
@@ -50,7 +50,6 @@
     /* File descriptor */
     char * psz_device;
     int    i_fd;
-    int    i_read_fd;
     int    i_pos;
 
     /* File handling */
@@ -79,10 +78,6 @@
     char * p_readv_buffer;
     int    i_readv_buf_size;
 #endif /* WIN32 */
-
-#ifdef DVDCSS_RAW_OPEN
-    int    i_raw_fd;
-#endif
 };
 
 /*****************************************************************************