From bd731508d46e232cb674cef93c41dbcaf391ae45 Mon Sep 17 00:00:00 2001 From: Mateusz Gienieczko Date: Sun, 22 May 2022 01:01:12 +0200 Subject: [PATCH] Use precomputed layouts. --- src/shims/windows/foreign_items.rs | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/shims/windows/foreign_items.rs b/src/shims/windows/foreign_items.rs index f2852d6bcca..1a9b2300f72 100644 --- a/src/shims/windows/foreign_items.rs +++ b/src/shims/windows/foreign_items.rs @@ -112,8 +112,6 @@ fn emulate_foreign_item_by_name( // Querying system information "GetSystemInfo" => { - use crate::rustc_middle::ty::{layout::LayoutOf, TyKind, UintTy}; - let [system_info] = this.check_shim(abi, Abi::System { unwind: false }, link_name, args)?; let system_info = this.deref_operand(system_info)?; @@ -123,16 +121,13 @@ fn emulate_foreign_item_by_name( iter::repeat(0u8).take(system_info.layout.size.bytes() as usize), )?; // Set selected fields. - let word_ty = this.tcx.mk_ty(TyKind::Uint(UintTy::U16)); - let dword_ty = this.tcx.mk_ty(TyKind::Uint(UintTy::U32)); - let usize_ty = this.tcx.mk_ty(TyKind::Uint(UintTy::Usize)); - let word_layout = this.layout_of(word_ty)?; - let dword_layout = this.layout_of(dword_ty)?; - let usize_layout = this.layout_of(usize_ty)?; + let word_layout = this.machine.layouts.u16; + let dword_layout = this.machine.layouts.u32; + let usize_layout = this.machine.layouts.usize; // Using `mplace_field` is error-prone, see: https://github.com/rust-lang/miri/issues/2136. // Pointer fields have different sizes on different targets. - // To avoid all these issue we calculate the offsets dynamically. + // To avoid all these issue we calculate the offsets ourselves. let field_sizes = [ word_layout.size, // 0, wProcessorArchitecture : WORD word_layout.size, // 1, wReserved : WORD -- 2.44.0