@@ -1521,7 +1521,7 @@ static void filesystem_iterator_set_current(
1521
1521
static int filesystem_iterator_current (
1522
1522
const git_index_entry * * out , git_iterator * i )
1523
1523
{
1524
- filesystem_iterator * iter = ( filesystem_iterator * ) i ;
1524
+ filesystem_iterator * iter = GIT_CONTAINER_OF ( i , filesystem_iterator , base ) ;
1525
1525
1526
1526
if (!iterator__has_been_accessed (i ))
1527
1527
return iter -> base .cb -> advance (out , i );
@@ -1568,7 +1568,7 @@ static int filesystem_iterator_is_dir(
1568
1568
static int filesystem_iterator_advance (
1569
1569
const git_index_entry * * out , git_iterator * i )
1570
1570
{
1571
- filesystem_iterator * iter = ( filesystem_iterator * ) i ;
1571
+ filesystem_iterator * iter = GIT_CONTAINER_OF ( i , filesystem_iterator , base ) ;
1572
1572
bool is_dir ;
1573
1573
int error = 0 ;
1574
1574
@@ -1627,7 +1627,7 @@ static int filesystem_iterator_advance(
1627
1627
static int filesystem_iterator_advance_into (
1628
1628
const git_index_entry * * out , git_iterator * i )
1629
1629
{
1630
- filesystem_iterator * iter = ( filesystem_iterator * ) i ;
1630
+ filesystem_iterator * iter = GIT_CONTAINER_OF ( i , filesystem_iterator , base ) ;
1631
1631
filesystem_iterator_frame * frame ;
1632
1632
filesystem_iterator_entry * prev_entry ;
1633
1633
int error ;
@@ -1664,7 +1664,7 @@ static int filesystem_iterator_advance_into(
1664
1664
1665
1665
int git_iterator_current_workdir_path (git_buf * * out , git_iterator * i )
1666
1666
{
1667
- filesystem_iterator * iter = ( filesystem_iterator * ) i ;
1667
+ filesystem_iterator * iter = GIT_CONTAINER_OF ( i , filesystem_iterator , base ) ;
1668
1668
const git_index_entry * entry ;
1669
1669
1670
1670
if (i -> type != GIT_ITERATOR_TYPE_FS &&
@@ -1724,15 +1724,19 @@ GIT_INLINE(bool) filesystem_iterator_current_is_ignored(
1724
1724
1725
1725
bool git_iterator_current_is_ignored (git_iterator * i )
1726
1726
{
1727
+ filesystem_iterator * iter = NULL ;
1728
+
1727
1729
if (i -> type != GIT_ITERATOR_TYPE_WORKDIR )
1728
1730
return false;
1729
1731
1730
- return filesystem_iterator_current_is_ignored ((filesystem_iterator * )i );
1732
+ iter = GIT_CONTAINER_OF (i , filesystem_iterator , base );
1733
+
1734
+ return filesystem_iterator_current_is_ignored (iter );
1731
1735
}
1732
1736
1733
1737
bool git_iterator_current_tree_is_ignored (git_iterator * i )
1734
1738
{
1735
- filesystem_iterator * iter = ( filesystem_iterator * ) i ;
1739
+ filesystem_iterator * iter = GIT_CONTAINER_OF ( i , filesystem_iterator , base ) ;
1736
1740
filesystem_iterator_frame * frame ;
1737
1741
1738
1742
if (i -> type != GIT_ITERATOR_TYPE_WORKDIR )
@@ -1747,7 +1751,7 @@ static int filesystem_iterator_advance_over(
1747
1751
git_iterator_status_t * status ,
1748
1752
git_iterator * i )
1749
1753
{
1750
- filesystem_iterator * iter = ( filesystem_iterator * ) i ;
1754
+ filesystem_iterator * iter = GIT_CONTAINER_OF ( i , filesystem_iterator , base ) ;
1751
1755
filesystem_iterator_frame * current_frame ;
1752
1756
filesystem_iterator_entry * current_entry ;
1753
1757
const git_index_entry * entry = NULL ;
@@ -1866,15 +1870,15 @@ static int filesystem_iterator_init(filesystem_iterator *iter)
1866
1870
1867
1871
static int filesystem_iterator_reset (git_iterator * i )
1868
1872
{
1869
- filesystem_iterator * iter = ( filesystem_iterator * ) i ;
1873
+ filesystem_iterator * iter = GIT_CONTAINER_OF ( i , filesystem_iterator , base ) ;
1870
1874
1871
1875
filesystem_iterator_clear (iter );
1872
1876
return filesystem_iterator_init (iter );
1873
1877
}
1874
1878
1875
1879
static void filesystem_iterator_free (git_iterator * i )
1876
1880
{
1877
- filesystem_iterator * iter = ( filesystem_iterator * ) i ;
1881
+ filesystem_iterator * iter = GIT_CONTAINER_OF ( i , filesystem_iterator , base ) ;
1878
1882
git__free (iter -> root );
1879
1883
git_buf_dispose (& iter -> current_path );
1880
1884
git_tree_free (iter -> tree );
@@ -2083,7 +2087,7 @@ static int index_iterator_skip_pseudotree(index_iterator *iter)
2083
2087
static int index_iterator_advance (
2084
2088
const git_index_entry * * out , git_iterator * i )
2085
2089
{
2086
- index_iterator * iter = ( index_iterator * ) i ;
2090
+ index_iterator * iter = GIT_CONTAINER_OF ( i , index_iterator , base ) ;
2087
2091
const git_index_entry * entry = NULL ;
2088
2092
bool is_submodule ;
2089
2093
int error = 0 ;
@@ -2156,7 +2160,7 @@ static int index_iterator_advance(
2156
2160
static int index_iterator_advance_into (
2157
2161
const git_index_entry * * out , git_iterator * i )
2158
2162
{
2159
- index_iterator * iter = ( index_iterator * ) i ;
2163
+ index_iterator * iter = GIT_CONTAINER_OF ( i , index_iterator , base ) ;
2160
2164
2161
2165
if (! S_ISDIR (iter -> tree_entry .mode )) {
2162
2166
if (out )
@@ -2174,7 +2178,7 @@ static int index_iterator_advance_over(
2174
2178
git_iterator_status_t * status ,
2175
2179
git_iterator * i )
2176
2180
{
2177
- index_iterator * iter = ( index_iterator * ) i ;
2181
+ index_iterator * iter = GIT_CONTAINER_OF ( i , index_iterator , base ) ;
2178
2182
const git_index_entry * entry ;
2179
2183
int error ;
2180
2184
@@ -2203,15 +2207,15 @@ static int index_iterator_init(index_iterator *iter)
2203
2207
2204
2208
static int index_iterator_reset (git_iterator * i )
2205
2209
{
2206
- index_iterator * iter = ( index_iterator * ) i ;
2210
+ index_iterator * iter = GIT_CONTAINER_OF ( i , index_iterator , base ) ;
2207
2211
2208
2212
index_iterator_clear (iter );
2209
2213
return index_iterator_init (iter );
2210
2214
}
2211
2215
2212
2216
static void index_iterator_free (git_iterator * i )
2213
2217
{
2214
- index_iterator * iter = ( index_iterator * ) i ;
2218
+ index_iterator * iter = GIT_CONTAINER_OF ( i , index_iterator , base ) ;
2215
2219
2216
2220
git_index_snapshot_release (& iter -> entries , iter -> base .index );
2217
2221
git_buf_dispose (& iter -> tree_buf );
0 commit comments