Forráskód Böngészése

Remove an extra CopyValue::invalid from maybe_sync_memo

Evan Almloff 1 éve
szülő
commit
30ef29d195
1 módosított fájl, 1 hozzáadás és 9 törlés
  1. 1 9
      packages/signals/src/signal.rs

+ 1 - 9
packages/signals/src/signal.rs

@@ -261,9 +261,6 @@ impl<T: PartialEq + 'static> Signal<T> {
     pub fn maybe_sync_memo<S: Storage<SignalData<T>>>(
         mut f: impl FnMut() -> T + 'static,
     ) -> ReadOnlySignal<T, S> {
-        let mut state = Signal::<T, S> {
-            inner: CopyValue::invalid(),
-        };
         let effect = Effect {
             source: current_scope_id().expect("in a virtual dom"),
             inner: CopyValue::invalid(),
@@ -272,12 +269,7 @@ impl<T: PartialEq + 'static> Signal<T> {
         {
             EFFECT_STACK.with(|stack| stack.effects.write().push(effect));
         }
-        state.inner.value.set(SignalData {
-            subscribers: Default::default(),
-            update_any: schedule_update_any(),
-            value: f(),
-            effect_ref: get_effect_ref(),
-        });
+        let mut state: Signal<T, S> = Signal::new_maybe_sync(f());
         {
             EFFECT_STACK.with(|stack| stack.effects.write().pop());
         }