Selaa lähdekoodia

Merge pull request #1084 from marc2332/patch-6

fix: Properly drop UseFuture's values to avoid leaking memory
Jon Kelley 2 vuotta sitten
vanhempi
commit
3985bd664b
1 muutettua tiedostoa jossa 8 lisäystä ja 0 poistoa
  1. 8 0
      packages/hooks/src/usefuture.rs

+ 8 - 0
packages/hooks/src/usefuture.rs

@@ -89,6 +89,14 @@ pub struct UseFuture<T> {
     values: Rc<RefCell<Vec<*mut T>>>,
 }
 
+impl<T> Drop for UseFuture<T> {
+    fn drop(&mut self) {
+        for value in self.values.take().into_iter() {
+            drop(unsafe { Box::from_raw(value) })
+        }
+    }
+}
+
 pub enum UseFutureState<'a, T> {
     Pending,
     Complete(&'a T),