about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJubilee Young <workingjubilee@gmail.com>2020-08-20 02:37:00 -0700
committerJubilee Young <workingjubilee@gmail.com>2020-09-04 21:51:17 -0700
commitb97d4131fe2cb3f32c13a0f5b0e3eb6f97c4f75a (patch)
treecbe4814db970076dae891acadc699ee2f353f7e5
parentc3364780d2cfddfe329f62a3ec138fd4f9a60e27 (diff)
downloadrust-b97d4131fe2cb3f32c13a0f5b0e3eb6f97c4f75a.tar.gz
rust-b97d4131fe2cb3f32c13a0f5b0e3eb6f97c4f75a.zip
Refactor byteorder to std in rustc_middle
Use std::io::{Read, Write} and {to, from}_{le, be}_bytes methods in
order to remove byteorder from librustc_middle's dependency graph.
-rw-r--r--Cargo.lock1
-rw-r--r--compiler/rustc_middle/Cargo.toml1
-rw-r--r--compiler/rustc_middle/src/mir/interpret/mod.rs16
3 files changed, 9 insertions, 9 deletions
diff --git a/Cargo.lock b/Cargo.lock
index d4e718cb603..b84f6ef51ac 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -3722,7 +3722,6 @@ name = "rustc_middle"
 version = "0.0.0"
 dependencies = [
  "bitflags",
- "byteorder",
  "chalk-ir",
  "measureme",
  "polonius-engine",
diff --git a/compiler/rustc_middle/Cargo.toml b/compiler/rustc_middle/Cargo.toml
index 302a907538c..a5a860a38b3 100644
--- a/compiler/rustc_middle/Cargo.toml
+++ b/compiler/rustc_middle/Cargo.toml
@@ -26,7 +26,6 @@ rustc_index = { path = "../rustc_index" }
 rustc_serialize = { path = "../rustc_serialize" }
 rustc_ast = { path = "../rustc_ast" }
 rustc_span = { path = "../rustc_span" }
-byteorder = { version = "1.3" }
 chalk-ir = "0.21.0"
 smallvec = { version = "1.0", features = ["union", "may_dangle"] }
 measureme = "0.7.1"
diff --git a/compiler/rustc_middle/src/mir/interpret/mod.rs b/compiler/rustc_middle/src/mir/interpret/mod.rs
index c7e32dd0708..afbb67555df 100644
--- a/compiler/rustc_middle/src/mir/interpret/mod.rs
+++ b/compiler/rustc_middle/src/mir/interpret/mod.rs
@@ -98,10 +98,10 @@ mod value;
 use std::convert::TryFrom;
 use std::fmt;
 use std::io;
+use std::io::{Read, Write};
 use std::num::NonZeroU32;
 use std::sync::atomic::{AtomicU32, Ordering};
 
-use byteorder::{BigEndian, LittleEndian, ReadBytesExt, WriteBytesExt};
 use rustc_ast::LitKind;
 use rustc_data_structures::fx::FxHashMap;
 use rustc_data_structures::sync::{HashMapExt, Lock};
@@ -561,18 +561,20 @@ pub fn write_target_uint(
     mut target: &mut [u8],
     data: u128,
 ) -> Result<(), io::Error> {
-    let len = target.len();
     match endianness {
-        Endian::Little => target.write_uint128::<LittleEndian>(data, len),
-        Endian::Big => target.write_uint128::<BigEndian>(data, len),
-    }
+        Endian::Little => target.write(&data.to_le_bytes())?,
+        Endian::Big => target.write(&data.to_be_bytes())?,
+    };
+    Ok(())
 }
 
 #[inline]
 pub fn read_target_uint(endianness: Endian, mut source: &[u8]) -> Result<u128, io::Error> {
+    let mut buf = [0; 16];
+    source.read(&mut buf)?;
     match endianness {
-        Endian::Little => source.read_uint128::<LittleEndian>(source.len()),
-        Endian::Big => source.read_uint128::<BigEndian>(source.len()),
+        Endian::Little => Ok(u128::from_le_bytes(buf)),
+        Endian::Big => Ok(u128::from_be_bytes(buf)),
     }
 }