Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions .github/dependabot.yml

This file was deleted.

83 changes: 83 additions & 0 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: checks
on:
pull_request:
merge_group:
types: [checks_requested]
workflow_dispatch:
jobs:
practices:
name: Practices
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v7
- name: install
uses: dtolnay/rust-toolchain@nightly
- name: style
run: |
rustup component add rustfmt
cargo fmt --all --check
- name: clippy
run: |
rustup component add clippy
cargo clippy
- name: docs
run: cargo doc --all-features
miri:
name: Miri
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v7
- name: install
uses: dtolnay/rust-toolchain@nightly
- name: default features
run: |
rustup component add miri
cargo miri test
- name: all features
run: cargo miri test --all-features
stable:
name: Stable
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v7
- name: install
uses: dtolnay/rust-toolchain@stable
- name: test default features
run: cargo test
nightly:
name: Nightly
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v7
- name: install
uses: dtolnay/rust-toolchain@nightly
- name: test default features
run: cargo test
- name: test all features
run: cargo test --all-features
nostd:
name: NoStd
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v7
- name: install
uses: dtolnay/rust-toolchain@stable
with:
target: thumbv7m-none-eabi
- name: test default features
run: cargo test
msrv:
name: MSRV
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v7
- name: install
uses: dtolnay/rust-toolchain@1.86
- name: test default features
run: cargo test
21 changes: 21 additions & 0 deletions .github/workflows/fuzzing.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: fuzzing
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * *"
jobs:
fuzz:
name: Fuzz
if: github.repository == 'servo/rust-smallvec'
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v7
- name: install
uses: dtolnay/rust-toolchain@stable
- name: fuzzing
run: |
sudo apt-get update -y
sudo apt-get install -y binutils-dev libunwind8-dev libcurl4-openssl-dev
sudo apt-get install -y libelf-dev libdw-dev cmake gcc libiberty-dev
./travis-fuzz.sh
26 changes: 26 additions & 0 deletions .github/workflows/performance.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: performance
on:
push:
branches: [v2]
workflow_dispatch:
jobs:
default:
name: Default
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v7
- name: install
uses: dtolnay/rust-toolchain@nightly
- name: bench
run: cargo bench
all:
name: All
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v7
- name: install
uses: dtolnay/rust-toolchain@nightly
- name: bench
run: cargo bench --all-features
104 changes: 0 additions & 104 deletions .github/workflows/rust.yml

This file was deleted.

22 changes: 12 additions & 10 deletions src/taggedlen.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,19 +60,21 @@ impl<T> TaggedLen<T> {
/// current len+n must be smaller than MAX_LEN on 64-bit target
#[inline(always)]
pub const unsafe fn add(&mut self, n: usize) {
#[cold]
#[inline(never)]
const fn assert_failed() {
panic!("smallvec length overflow")
}
#[cfg(any(debug_assertions, not(target_pointer_width = "64")))]
match self.len().checked_add(n) {
Some(value) => {
if value > Self::MAX_LEN {
assert_failed()
{
#[cold]
#[inline(never)]
const fn assert_failed() {
panic!("smallvec length overflow")
}
match self.len().checked_add(n) {
Some(value) => {
if value > Self::MAX_LEN {
assert_failed()
}
}
None => assert_failed()
}
None => assert_failed()
}
self.0 += n << Self::SHIFT;
}
Expand Down
2 changes: 1 addition & 1 deletion tests/borsh.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ fn round_trip() {

#[test]
fn round_trip_zst() {
let smallvec = SmallVec::<(), 5>::from([(); 0x100000]);
let smallvec = SmallVec::<(), 5>::from([(); 0x100]);
let bytes = to_vec(&smallvec).unwrap();
let new = SmallVec::<(), 100>::deserialize(&mut bytes.as_ref()).unwrap();
assert_eq!(new, smallvec);
Expand Down
Loading