Comments (6)
@imp2002 could you verify if this is the case, please?
from rust.
This issue has been automatically marked as abandoned because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
from rust.
@Kylebrown9
Hello, why NonNull
never dropped? Impl LinkedList in rust-lang doc with NonNull
too. Can you explain where is wrong? I checked, but not found. Thanks.
from rust.
The LinkedList in the docs you referenced provides a Drop
implementation (line 993) that performs the required freeing. Dropping NonNull
itself does not free the referenced memory.
from rust.
Use Box::from_raw()
free the referenced memory. After calling this function, the raw pointer is owned by the resulting Box. Specifically, the Box destructor will call the destructor of Node<T>
and free the allocated memory.
fn pop_back_node(&mut self) -> Option<Box<Node<T>>> {
self.tail.map(|node| unsafe {
let node = Box::from_raw(node.as_ptr());
self.tail = node.prev;
match self.tail {
None => self.head = None,
Some(tail) => (*tail.as_ptr()).next = None,
}
self.len -= 1;
node
})
}
from rust.
Something like that could work.
Until Drop
is implemented for LinkedList
such that all nodes are freed, LinkedList
will leaks node memory when dropped.
The drop implementation could use Box::from_raw(...)
as you say or ptr::drop_in_place(...)
.
This is a big issue with the example and should be fixed ASAP to avoid misleading readers on the use of NonNull
.
from rust.
Related Issues (20)
- .
- Improving documentation formatting HOT 4
- ...and how do you use them? HOT 1
- Linked List implementation is unsound HOT 3
- github actions is in outdated version HOT 2
- Authentication is needed to run workflows for PR HOT 7
- Suggestion: Add a Section for Bit Manipulation Algorithms HOT 3
- Suggestion: Adding Loss functions of Machine Learning in maths folder HOT 14
- Suggestion: Add optimization functions, ml algorithms under `machine_learning` folder HOT 7
- Suggestion: Parallel Implementation HOT 3
- DIRECTORY.md is out of date HOT 9
- Many implementations are not declared as mods anywhere in the module tree HOT 1
- Add Gitpod Setup
- Add algorithm to find k-th digit in a digit string HOT 2
- Add algorithm to find a number of points in a polygon area
- Suggestion: Adding Geometry, Graph and Number Theory as subfolders of Math HOT 6
- Suggestion: Add diff and zero-crossing rate algoritms for math HOT 2
- Fails miri test for rb-tree on Rust HOT 2
- String based algorithms panics on unicode characters HOT 3
- Automating mod files HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rust.