From 1fbf998b652af1c3e1cf888a9dfceb9eaeecc475 Mon Sep 17 00:00:00 2001 From: Ralf Jung Date: Tue, 14 Aug 2018 19:00:18 +0200 Subject: [PATCH] Fix remaining windows hooks --- appveyor.yml | 2 +- src/fn_call.rs | 12 ++++-------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 6aee7e75a956..14532416978c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -26,12 +26,12 @@ install: - cd xargo - set RUSTFLAGS=-Zalways-encode-mir -Zmir-emit-validate=1 - xargo build - - set RUSTFLAGS= - cd .. build: false test_script: + - set RUSTFLAGS=-g - set RUST_BACKTRACE=1 - cargo build --release - cargo test --release diff --git a/src/fn_call.rs b/src/fn_call.rs index b475837a6e52..509119beb35c 100644 --- a/src/fn_call.rs +++ b/src/fn_call.rs @@ -645,13 +645,11 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx> for EvalContext<'a, 'mir, ' "GetProcAddress" | "TryEnterCriticalSection" => { // pretend these do not exist/nothing happened, by returning zero - let ptr_size = self.memory.pointer_size(); - self.write_scalar(dest, Scalar::from_int(0, ptr_size), dest_ty)?; + self.write_scalar(dest, Scalar::from_int(0, dest_layout.size), dest_ty)?; }, "GetLastError" => { // this is c::ERROR_CALL_NOT_IMPLEMENTED - let ptr_size = self.memory.pointer_size(); - self.write_scalar(dest, Scalar::from_int(120, ptr_size), dest_ty)?; + self.write_scalar(dest, Scalar::from_int(120, dest_layout.size), dest_ty)?; }, // Windows TLS @@ -665,8 +663,7 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx> for EvalContext<'a, 'mir, ' if dest_layout.size.bits() < 128 && key >= (1u128 << dest_layout.size.bits() as u128) { return err!(OutOfTls); } - let ptr_size = self.memory.pointer_size(); - self.write_scalar(dest, Scalar::from_uint(key, ptr_size), dest_layout.ty)?; + self.write_scalar(dest, Scalar::from_uint(key, dest_layout.size), dest_layout.ty)?; } "TlsGetValue" => { let key = self.value_to_scalar(args[0])?.to_bytes()?; @@ -677,10 +674,9 @@ impl<'a, 'mir, 'tcx: 'mir + 'a> EvalContextExt<'tcx> for EvalContext<'a, 'mir, ' let key = self.value_to_scalar(args[0])?.to_bytes()?; let new_ptr = self.into_ptr(args[1].value)?.unwrap_or_err()?; self.memory.store_tls(key, new_ptr)?; - let ptr_size = self.memory.pointer_size(); // Return success (1) - self.write_scalar(dest, Scalar::from_int(1, ptr_size), dest_ty)?; + self.write_scalar(dest, Scalar::from_int(1, dest_layout.size), dest_ty)?; } // We can't execute anything else