Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use a single ptr::drop_in_place call instead of a loop #100

Merged
merged 1 commit into from Jun 6, 2018

Conversation

@mbrubeck
Copy link
Contributor

mbrubeck commented Jun 6, 2018

This is what the standard Vec does; see rust-lang/rust#32012.


This change is Reviewable

This is what the standard Vec does; see rust-lang/rust#32012.
@mbrubeck
Copy link
Contributor Author

mbrubeck commented Jun 6, 2018

@SimonSapin
Copy link
Member

SimonSapin commented Jun 6, 2018

@bors-servo
Copy link
Contributor

bors-servo commented Jun 6, 2018

📌 Commit b24b3d2 has been approved by SimonSapin

@bors-servo
Copy link
Contributor

bors-servo commented Jun 6, 2018

Testing commit b24b3d2 with merge d88b2d9...

bors-servo added a commit that referenced this pull request Jun 6, 2018
Use a single ptr::drop_in_place call instead of a loop

This is what the standard Vec does; see rust-lang/rust#32012.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/rust-smallvec/100)
<!-- Reviewable:end -->
@bors-servo
Copy link
Contributor

bors-servo commented Jun 6, 2018

☀️ Test successful - status-travis
Approved by: SimonSapin
Pushing d88b2d9 to master...

@bors-servo bors-servo merged commit b24b3d2 into servo:master Jun 6, 2018
2 checks passed
2 checks passed
continuous-integration/travis-ci/pr The Travis CI build passed
Details
homu Test successful
Details
mbrubeck added a commit to mbrubeck/rust-smallvec that referenced this pull request Jul 19, 2018
Changes in this release:

* Fix possible double-free in `insert_many` when passed an iterator that
  panics in `next` (servo#103)
* Add a new `union` feature (disabled by default) that reduces the size
  of the SmallVec struct (servo#94)
* Improve performance of `extend` and `from_elem` (servo#93)
* Improve performance of `drop` (servo#100)
* Update dev-dependency on `bincode` (servo#102)
* Update to build without `std` on current Rust nightly (servo#104)
* Additional benchmarks (servo#95, servo#97).
mbrubeck added a commit to mbrubeck/rust-smallvec that referenced this pull request Jul 19, 2018
Changes in this release:

* Fix possible double-free in `insert_many` when passed an iterator that
  panics in `next` (servo#103)
* Add a new `union` feature (disabled by default) that reduces the size
  of the SmallVec struct (servo#94)
* Improve performance of `extend` and `from_elem` (servo#93)
* Improve performance of `drop` (servo#100)
* Update dev-dependency on `bincode` (servo#102)
* Update to build without `std` on current Rust nightly (servo#104)
* Additional benchmarks (servo#95, servo#97).
@mbrubeck mbrubeck mentioned this pull request Jul 19, 2018
bors-servo added a commit that referenced this pull request Jul 19, 2018
Version 0.6.3

Changes in this release:

* Fix possible double-free in `insert_many` when passed an iterator that panics in `next` (#103)
* Add a new `union` feature (disabled by default) that reduces the size of the SmallVec struct (#94)
* Improve performance of `extend` and `from_elem` (#93)
* Improve performance of `drop` (#100)
* Update to build without `std` feature on current Rust nightly (#104)
* Additional benchmarks (#95, #97)
* Update dev-dependency on `bincode` (#102)

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/rust-smallvec/105)
<!-- Reviewable:end -->
@Shnatsel

This comment has been minimized.

Copy link

Shnatsel commented on b24b3d2 Jun 29, 2019

This seems to be the commit that caused #149

Which doesn't really make sense to me, but the following test clearly points to this commit as the culprit:

let mut v: SmallVec<[u8; 2]> = SmallVec::new();
v.push(1);
v.push(2);
v.push(3);
assert!(v.spilled());
v.clear();
// Shrink to inline.
v.grow(2);
assert_eq!(v.capacity(), 2);

This comment has been minimized.

Copy link

jesskfullwood replied Jun 30, 2019

@Shnatsel I had a go with git-bisect and it pointed me to #94 (6ff944), which seems a more plausible candidate.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

5 participants
You can’t perform that action at this time.