@@ -1711,8 +1711,9 @@ int free_dir_node_avl( void *in_dir_node_avl, void *in_context, long in_depth )
1711
1711
int write_tree ( dir_node_avl * in_avl , write_tree_context * in_context , int in_depth ) {
1712
1712
xoff_t pos ;
1713
1713
write_tree_context context ;
1714
+ xoff_t dir_start = (xoff_t )in_avl -> start_sector * XISO_SECTOR_SIZE ;
1714
1715
int err = 0 , pad ;
1715
- char sector [ XISO_SECTOR_SIZE ];
1716
+ char sector [XISO_SECTOR_SIZE ];
1716
1717
1717
1718
if ( in_avl -> subdirectory ) {
1718
1719
if ( in_context -> path ) { if ( asprintf ( & context .path , "%s%s%c" , in_context -> path , in_avl -> filename , PATH_CHAR ) == -1 ) mem_err (); }
@@ -1734,7 +1735,7 @@ int write_tree( dir_node_avl *in_avl, write_tree_context *in_context, int in_dep
1734
1735
if ( ! err ) err = avl_traverse_depth_first ( in_avl -> subdirectory , (traversal_callback ) write_file , & context , k_prefix , 0 );
1735
1736
if ( ! err ) err = avl_traverse_depth_first ( in_avl -> subdirectory , (traversal_callback ) write_tree , & context , k_prefix , 0 );
1736
1737
1737
- if (!err && lseek (in_context -> xiso , ( xoff_t ) in_avl -> start_sector * XISO_SECTOR_SIZE , SEEK_SET ) == -1 ) seek_err ();
1738
+ if (!err && lseek (in_context -> xiso , dir_start , SEEK_SET ) == -1 ) seek_err ();
1738
1739
if (!err ) err = avl_traverse_depth_first (in_avl -> subdirectory , (traversal_callback )write_directory , in_context , k_prefix , 0 );
1739
1740
if (!err && (pos = lseek (in_context -> xiso , 0 , SEEK_CUR )) == -1 ) seek_err ();
1740
1741
if (!err && (pad = (int )((XISO_SECTOR_SIZE - (pos % XISO_SECTOR_SIZE )) % XISO_SECTOR_SIZE ))) {
@@ -1747,7 +1748,7 @@ int write_tree( dir_node_avl *in_avl, write_tree_context *in_context, int in_dep
1747
1748
}
1748
1749
} else {
1749
1750
memset (sector , XISO_PAD_BYTE , XISO_SECTOR_SIZE );
1750
- if ((pos = lseek (in_context -> xiso , in_avl -> start_sector * XISO_SECTOR_SIZE , SEEK_SET )) == -1 ) seek_err ();
1751
+ if ((pos = lseek (in_context -> xiso , dir_start , SEEK_SET )) == -1 ) seek_err ();
1751
1752
if (!err && write (in_context -> xiso , sector , XISO_SECTOR_SIZE ) != XISO_SECTOR_SIZE ) write_err ();
1752
1753
}
1753
1754
0 commit comments