@@ -879,6 +879,18 @@ void git_index_entry__init_from_stat(
879
879
entry -> file_size = st -> st_size ;
880
880
}
881
881
882
+ static void index_entry_adjust_namemask (
883
+ git_index_entry * entry ,
884
+ size_t path_length )
885
+ {
886
+ entry -> flags &= ~GIT_IDXENTRY_NAMEMASK ;
887
+
888
+ if (path_length < GIT_IDXENTRY_NAMEMASK )
889
+ entry -> flags |= path_length & GIT_IDXENTRY_NAMEMASK ;
890
+ else
891
+ entry -> flags |= GIT_IDXENTRY_NAMEMASK ;
892
+ }
893
+
882
894
static int index_entry_create (
883
895
git_index_entry * * out ,
884
896
git_repository * repo ,
@@ -1279,13 +1291,7 @@ static int index_insert(
1279
1291
1280
1292
/* make sure that the path length flag is correct */
1281
1293
path_length = ((struct entry_internal * )entry )-> pathlen ;
1282
-
1283
- entry -> flags &= ~GIT_IDXENTRY_NAMEMASK ;
1284
-
1285
- if (path_length < GIT_IDXENTRY_NAMEMASK )
1286
- entry -> flags |= path_length & GIT_IDXENTRY_NAMEMASK ;
1287
- else
1288
- entry -> flags |= GIT_IDXENTRY_NAMEMASK ;
1294
+ index_entry_adjust_namemask (entry , path_length );
1289
1295
1290
1296
/* this entry is now up-to-date and should not be checked for raciness */
1291
1297
entry -> flags_extended |= GIT_IDXENTRY_UPTODATE ;
@@ -1561,10 +1567,11 @@ int git_index__fill(git_index *index, const git_vector *source_entries)
1561
1567
if ((ret = index_entry_dup (& entry , index , source_entry )) < 0 )
1562
1568
break ;
1563
1569
1570
+ index_entry_adjust_namemask (entry , ((struct entry_internal * )entry )-> pathlen );
1564
1571
entry -> flags_extended |= GIT_IDXENTRY_UPTODATE ;
1572
+ entry -> mode = git_index__create_mode (entry -> mode );
1565
1573
1566
- ret = git_vector_insert (& index -> entries , entry );
1567
- if (ret < 0 )
1574
+ if ((ret = git_vector_insert (& index -> entries , entry )) < 0 )
1568
1575
break ;
1569
1576
1570
1577
INSERT_IN_MAP (index , entry , ret );
@@ -2889,11 +2896,7 @@ static int read_tree_cb(
2889
2896
entry -> flags_extended = 0 ;
2890
2897
}
2891
2898
2892
- if (path .size < GIT_IDXENTRY_NAMEMASK )
2893
- entry -> flags = path .size & GIT_IDXENTRY_NAMEMASK ;
2894
- else
2895
- entry -> flags = GIT_IDXENTRY_NAMEMASK ;
2896
-
2899
+ index_entry_adjust_namemask (entry , path .size );
2897
2900
git_buf_free (& path );
2898
2901
2899
2902
if (git_vector_insert (data -> new_entries , entry ) < 0 ) {
0 commit comments