From d18e847dd4e1d09dd3e3a90ef5be0b29bd869843 Mon Sep 17 00:00:00 2001 From: HeroicKatora Date: Sat, 15 Aug 2020 13:30:27 +0200 Subject: [PATCH] Add an optional feature for 1.34.2 compatibility (#84) --- miniz_oxide/Cargo.toml | 2 ++ miniz_oxide/src/deflate/mod.rs | 4 ++-- miniz_oxide/src/inflate/mod.rs | 6 +++--- miniz_oxide/src/inflate/stream.rs | 2 +- miniz_oxide/src/lib.rs | 5 ++++- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/miniz_oxide/Cargo.toml b/miniz_oxide/Cargo.toml index 52b5f2da..ebf22bf3 100644 --- a/miniz_oxide/Cargo.toml +++ b/miniz_oxide/Cargo.toml @@ -29,3 +29,5 @@ compiler_builtins = { version = '0.1.2', optional = true } # Internal feature, only used when building as part of libstd, not part of the # stable interface of this crate. rustc-dep-of-std = ['core', 'alloc', 'compiler_builtins', 'adler/rustc-dep-of-std'] +# Use std instead of alloc. This should only be used for backwards compatibility. +no_extern_crate_alloc = [] diff --git a/miniz_oxide/src/deflate/mod.rs b/miniz_oxide/src/deflate/mod.rs index ac8b5e56..cc90ca67 100644 --- a/miniz_oxide/src/deflate/mod.rs +++ b/miniz_oxide/src/deflate/mod.rs @@ -1,7 +1,7 @@ //! This module contains functionality for compression. -use alloc::vec; -use alloc::vec::Vec; +use crate::alloc::vec; +use crate::alloc::vec::Vec; mod buffer; pub mod core; diff --git a/miniz_oxide/src/inflate/mod.rs b/miniz_oxide/src/inflate/mod.rs index de496869..8edcbbe3 100644 --- a/miniz_oxide/src/inflate/mod.rs +++ b/miniz_oxide/src/inflate/mod.rs @@ -2,9 +2,9 @@ use ::core::cmp::min; use ::core::usize; -use alloc::boxed::Box; -use alloc::vec; -use alloc::vec::Vec; +use crate::alloc::boxed::Box; +use crate::alloc::vec; +use crate::alloc::vec::Vec; pub mod core; mod output_buffer; diff --git a/miniz_oxide/src/inflate/stream.rs b/miniz_oxide/src/inflate/stream.rs index fe2c6884..88232183 100644 --- a/miniz_oxide/src/inflate/stream.rs +++ b/miniz_oxide/src/inflate/stream.rs @@ -1,7 +1,7 @@ //! Extra streaming decompression functionality. //! //! As of now this is mainly inteded for use to build a higher-level wrapper. -use alloc::boxed::Box; +use crate::alloc::boxed::Box; use core::{cmp, mem}; use crate::inflate::core::{decompress, inflate_flags, DecompressorOxide, TINFL_LZ_DICT_SIZE}; diff --git a/miniz_oxide/src/lib.rs b/miniz_oxide/src/lib.rs index 4ae3d76c..0b4c6078 100644 --- a/miniz_oxide/src/lib.rs +++ b/miniz_oxide/src/lib.rs @@ -23,9 +23,12 @@ #![allow(warnings)] #![forbid(unsafe_code)] -#![no_std] +#![cfg_attr(not(feature = "no_extern_crate_alloc"), no_std)] +#[cfg(not(feature = "no_extern_crate_alloc"))] extern crate alloc; +#[cfg(feature = "no_extern_crate_alloc")] +use std as alloc; #[cfg(test)] extern crate std;