Snap for 7183400 from f94bcf722d168939e2c6f83a880e3ff40c55bcf7 to sc-release
Change-Id: I7f3f0a638a1cb7c640e319aca996e45df0ac6fb4
diff --git a/.cargo_vcs_info.json b/.cargo_vcs_info.json
index f9cc1a3..020e8b8 100644
--- a/.cargo_vcs_info.json
+++ b/.cargo_vcs_info.json
@@ -1,5 +1,5 @@
{
"git": {
- "sha1": "f1ee0d032368e4912af9d4620bd0ec3857838f2e"
+ "sha1": "0531e100ef052fd49b2f465abf96cd88aea84692"
}
}
diff --git a/Android.bp b/Android.bp
index 38dc917..cb2c07b 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,42 +1,5 @@
// This file is generated by cargo2android.py --device --run --dependencies --test.
-
-package {
- default_applicable_licenses: [
- "external_rust_crates_linked-hash-map_license",
- ],
-}
-
-// Added automatically by a large-scale-change that took the approach of
-// 'apply every license found to every target'. While this makes sure we respect
-// every license restriction, it may not be entirely correct.
-//
-// e.g. GPL in an MIT project might only apply to the contrib/ directory.
-//
-// Please consider splitting the single license below into multiple licenses,
-// taking care not to lose any license_kind information, and overriding the
-// default license using the 'licenses: [...]' property on targets as needed.
-//
-// For unused files, consider creating a 'filegroup' with "//visibility:private"
-// to attach the license to, and including a comment whether the files may be
-// used in the current project.
-//
-// large-scale-change included anything that looked like it might be a license
-// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
-//
-// Please consider removing redundant or irrelevant files from 'license_text:'.
-// http://go/android-license-faq
-license {
- name: "external_rust_crates_linked-hash-map_license",
- visibility: [":__subpackages__"],
- license_kinds: [
- "SPDX-license-identifier-Apache-2.0",
- "SPDX-license-identifier-MIT",
- ],
- license_text: [
- "LICENSE-APACHE",
- "LICENSE-MIT",
- ],
-}
+// Do not modify this file as changes will be overridden on upgrade.
rust_library {
name: "liblinked_hash_map",
@@ -58,6 +21,9 @@
rust_test_host {
name: "linked-hash-map_host_test_src_lib",
defaults: ["linked-hash-map_defaults"],
+ test_options: {
+ unit_test: true,
+ },
}
rust_test {
@@ -80,6 +46,9 @@
name: "linked-hash-map_host_test_tests_heapsize",
defaults: ["linked-hash-map_defaults_linked_hash_map"],
srcs: ["tests/heapsize.rs"],
+ test_options: {
+ unit_test: true,
+ },
}
rust_test {
@@ -92,6 +61,9 @@
name: "linked-hash-map_host_test_tests_serde",
defaults: ["linked-hash-map_defaults_linked_hash_map"],
srcs: ["tests/serde.rs"],
+ test_options: {
+ unit_test: true,
+ },
}
rust_test {
@@ -104,6 +76,9 @@
name: "linked-hash-map_host_test_tests_test",
defaults: ["linked-hash-map_defaults_linked_hash_map"],
srcs: ["tests/test.rs"],
+ test_options: {
+ unit_test: true,
+ },
}
rust_test {
diff --git a/Cargo.toml b/Cargo.toml
index e3f6a18..b2d5572 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -12,12 +12,12 @@
[package]
name = "linked-hash-map"
-version = "0.5.3"
+version = "0.5.4"
authors = ["Stepan Koltsov <[email protected]>", "Andrew Paseltiner <[email protected]>"]
exclude = ["/.travis.yml", "/deploy-docs.sh"]
description = "A HashMap wrapper that holds key-value pairs in insertion order"
homepage = "https://github.com/contain-rs/linked-hash-map"
-documentation = "https://contain-rs.github.io/linked-hash-map/linked_hash_map"
+documentation = "https://docs.rs/linked-hash-map"
readme = "README.md"
keywords = ["data-structures"]
license = "MIT/Apache-2.0"
diff --git a/Cargo.toml.orig b/Cargo.toml.orig
index 87d7927..cb43704 100644
--- a/Cargo.toml.orig
+++ b/Cargo.toml.orig
@@ -1,7 +1,7 @@
[package]
name = "linked-hash-map"
-version = "0.5.3"
+version = "0.5.4"
license = "MIT/Apache-2.0"
description = "A HashMap wrapper that holds key-value pairs in insertion order"
authors = [
@@ -11,7 +11,7 @@
repository = "https://github.com/contain-rs/linked-hash-map"
homepage = "https://github.com/contain-rs/linked-hash-map"
-documentation = "https://contain-rs.github.io/linked-hash-map/linked_hash_map"
+documentation = "https://docs.rs/linked-hash-map"
keywords = ["data-structures"]
readme = "README.md"
exclude = ["/.travis.yml", "/deploy-docs.sh"]
diff --git a/METADATA b/METADATA
index 343ee7e..e3889bb 100644
--- a/METADATA
+++ b/METADATA
@@ -7,13 +7,13 @@
}
url {
type: ARCHIVE
- value: "https://static.crates.io/crates/linked-hash-map/linked-hash-map-0.5.3.crate"
+ value: "https://static.crates.io/crates/linked-hash-map/linked-hash-map-0.5.4.crate"
}
- version: "0.5.3"
+ version: "0.5.4"
license_type: NOTICE
last_upgrade_date {
- year: 2020
- month: 6
- day: 11
+ year: 2021
+ month: 2
+ day: 9
}
}
diff --git a/README.md b/README.md
index fb701eb..f93b6fc 100644
--- a/README.md
+++ b/README.md
@@ -12,4 +12,4 @@
A HashMap wrapper that holds key-value pairs in insertion order.
-Documentation is available at https://contain-rs.github.io/linked-hash-map/linked_hash_map.
+Documentation is available at https://docs.rs/linked-hash-map.
diff --git a/TEST_MAPPING b/TEST_MAPPING
index 23e98ee..d694cb4 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -1,20 +1,20 @@
-// Generated by cargo2android.py for tests in Android.bp
+// Generated by update_crate_tests.py for tests that depend on this crate.
{
"presubmit": [
{
"name": "linked-hash-map_device_test_src_lib"
},
{
- "name": "linked-hash-map_device_test_tests_heapsize"
- },
- {
- "name": "linked-hash-map_device_test_tests_serde"
+ "name": "lru-cache_device_test_src_lib"
},
{
"name": "linked-hash-map_device_test_tests_test"
},
{
- "name": "lru-cache_device_test_src_lib"
+ "name": "linked-hash-map_device_test_tests_serde"
+ },
+ {
+ "name": "linked-hash-map_device_test_tests_heapsize"
}
]
}
diff --git a/src/lib.rs b/src/lib.rs
index 5abdea2..2754217 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -86,6 +86,7 @@
// due to conflicting implementations of `Borrow`. The layout of `&Qey<Q>` must be identical to
// `&Q` in order to support transmuting in the `Qey::from_ref` method.
#[derive(Hash, PartialEq, Eq)]
+#[repr(transparent)]
struct Qey<Q: ?Sized>(Q);
impl<Q: ?Sized> Qey<Q> {
@@ -109,11 +110,15 @@
}
}
+// drop empty node without dropping its key and value
unsafe fn drop_empty_node<K, V>(the_box: *mut Node<K, V>) {
- // Prevent compiler from trying to drop the un-initialized key and values in the node.
- let Node { key, value, .. } = *Box::from_raw(the_box);
- mem::forget(key);
- mem::forget(value);
+ // Safety:
+ // In this crate all `Node` is allocated via `Box` or `alloc`, and `Box` uses the
+ // Global allocator for its allocation,
+ // (https://doc.rust-lang.org/std/boxed/index.html#memory-layout) so we can safely
+ // deallocate the pointer to `Node` by calling `dealloc` method
+ let layout = std::alloc::Layout::new::<Node<K, V>>();
+ std::alloc::dealloc(the_box as *mut u8, layout);
}
impl<K: Hash + Eq, V> LinkedHashMap<K, V> {