Mercurial > hg
changeset 48568:440972d2175d stable
rust: fix build errors on darwin
I'm not all _that_ versed in Rust, but I think the root cause is that
some constants are u16 rather than u32 on Darwin. I checked that the
code still compiles on the latest Ubuntu.
Differential Revision: https://phab.mercurial-scm.org/D11955
author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
---|---|
date | Thu, 30 Dec 2021 13:25:44 +0100 |
parents | f98d4d0a299a |
children | f13fb742e1d8 f38ae2d7390e |
files | rust/hg-core/src/dirstate_tree/on_disk.rs |
diffstat | 1 files changed, 3 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/rust/hg-core/src/dirstate_tree/on_disk.rs Mon Jan 10 18:04:41 2022 -0500 +++ b/rust/hg-core/src/dirstate_tree/on_disk.rs Thu Dec 30 13:25:44 2021 +0100 @@ -353,7 +353,7 @@ } else { 0o644 }; - file_type | permisions + (file_type | permisions).into() } fn assume_entry(&self) -> Result<DirstateEntry, DirstateV2ParseError> { @@ -454,8 +454,8 @@ flags.set(Flags::P1_TRACKED, p1_tracked); flags.set(Flags::P2_INFO, p2_info); let size = if let Some((m, s)) = mode_size_opt { - let exec_perm = m & libc::S_IXUSR != 0; - let is_symlink = m & libc::S_IFMT == libc::S_IFLNK; + let exec_perm = m & (libc::S_IXUSR as u32) != 0; + let is_symlink = m & (libc::S_IFMT as u32) == libc::S_IFLNK as u32; flags.set(Flags::MODE_EXEC_PERM, exec_perm); flags.set(Flags::MODE_IS_SYMLINK, is_symlink); flags.insert(Flags::HAS_MODE_AND_SIZE);