浏览代码

fixed infinite loop in union_ordered_iter

Evan Almloff 3 年之前
父节点
当前提交
cebf17088b
共有 2 个文件被更改,包括 4 次插入2 次删除
  1. 0 1
      packages/native-core-macro/src/lib.rs
  2. 4 1
      packages/native-core/src/state.rs

+ 0 - 1
packages/native-core-macro/src/lib.rs

@@ -638,7 +638,6 @@ impl<'a> StateMember<'a> {
         let ty = &self.mem.ty;
         let node_view =
             quote!(dioxus_native_core::node_ref::NodeView::new(node, #ty::NODE_MASK, vdom));
-        let id = self.member_id.0;
         if let Some(dep_ident) = &self.dep_mem.map(|m| &m.ident) {
             match self.dep_kind {
                 DepKind::Node => {

+ 4 - 1
packages/native-core/src/state.rs

@@ -26,7 +26,10 @@ pub(crate) fn union_ordered_iter<T: Ord + Debug>(
                 Ordering::Less => {
                     v.push(o_peekable.next().unwrap());
                 }
-                Ordering::Equal => (),
+                Ordering::Equal => {
+                    o_peekable.next();
+                    break;
+                }
             }
         }
         v.push(s_peekable.next().unwrap());