mercurial/dirstatemap.py
changeset 48051 98c0408324e6
parent 48050 2ac0e6b23222
child 48052 d07d38ef6362
--- a/mercurial/dirstatemap.py	Thu Sep 23 15:36:43 2021 +0200
+++ b/mercurial/dirstatemap.py	Thu Sep 23 18:29:40 2021 +0200
@@ -561,19 +561,26 @@
             from_p2=False,
             possibly_dirty=False,
         ):
-            ret = self._rustmap.addfile(
-                f,
-                mode,
-                size,
-                mtime,
-                added,
-                merged,
-                from_p2,
-                possibly_dirty,
-            )
+            if added:
+                assert not possibly_dirty
+                assert not from_p2
+                item = DirstateItem.new_added()
+            elif merged:
+                assert not possibly_dirty
+                assert not from_p2
+                item = DirstateItem.new_merged()
+            elif from_p2:
+                assert not possibly_dirty
+                item = DirstateItem.new_from_p2()
+            elif possibly_dirty:
+                item = DirstateItem.new_possibly_dirty()
+            else:
+                size = size & rangemask
+                mtime = mtime & rangemask
+                item = DirstateItem.new_normal(mode, size, mtime)
+            self._rustmap.addfile(f, item)
             if added:
                 self.copymap.pop(f, None)
-            return ret
 
         def reset_state(
             self,