Mercurial > public > mercurial-scm > hg
comparison rust/hg-cpython/src/revlog.rs @ 51463:a43a6d4b3be6 stable
rust-index: don't use mutable borrow for head-diff computation
It does not needs to mutate the index.
This is one of the two suspects of RuntimeError being thrown during push.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 05 Mar 2024 15:07:04 +0100 |
parents | 3099f1c68afd |
children | 68ed56baabf5 |
comparison
equal
deleted
inserted
replaced
51445:89cd0dd41e4d | 51463:a43a6d4b3be6 |
---|---|
852 begin: &PyObject, | 852 begin: &PyObject, |
853 end: &PyObject, | 853 end: &PyObject, |
854 ) -> PyResult<PyObject> { | 854 ) -> PyResult<PyObject> { |
855 let begin = begin.extract::<BaseRevision>(py)?; | 855 let begin = begin.extract::<BaseRevision>(py)?; |
856 let end = end.extract::<BaseRevision>(py)?; | 856 let end = end.extract::<BaseRevision>(py)?; |
857 let index = &mut *self.index(py).borrow_mut(); | 857 let index = &*self.index(py).borrow(); |
858 let begin = | 858 let begin = |
859 Self::check_revision(index, UncheckedRevision(begin - 1), py)?; | 859 Self::check_revision(index, UncheckedRevision(begin - 1), py)?; |
860 let end = Self::check_revision(index, UncheckedRevision(end - 1), py)?; | 860 let end = Self::check_revision(index, UncheckedRevision(end - 1), py)?; |
861 let (removed, added) = index | 861 let (removed, added) = index |
862 .head_revs_diff(begin, end) | 862 .head_revs_diff(begin, end) |