@@ -527,6 +527,10 @@ extension ProgressManager {
527527 if childPropertyState. isDirty {
528528 if let child = child. manager {
529529 dirtyChildren. append ( ( idx, child) )
530+ } else {
531+ // Child is dirty but manager is deallocated - use last known value
532+ let isAlive = false
533+ nonDirtySummaries. append ( ( idx, childPropertyState. value, isAlive) )
530534 }
531535 } else {
532536 let isAlive = child. manager != nil
@@ -536,6 +540,10 @@ extension ProgressManager {
536540 // Property doesn't exist yet in child - need to fetch it
537541 if let child = child. manager {
538542 dirtyChildren. append ( ( idx, child) )
543+ } else {
544+ // Child manager is deallocated, use default value
545+ let isAlive = false
546+ nonDirtySummaries. append ( ( idx, property. defaultValue, isAlive) )
539547 }
540548 }
541549 }
@@ -590,6 +598,10 @@ extension ProgressManager {
590598 if childPropertyState. isDirty {
591599 if let child = child. manager {
592600 dirtyChildren. append ( ( idx, child) )
601+ } else {
602+ // Child is dirty but manager is deallocated - use last known value
603+ let isAlive = false
604+ nonDirtySummaries. append ( ( idx, childPropertyState. value, isAlive) )
593605 }
594606 } else {
595607 let isAlive = child. manager != nil
@@ -599,6 +611,10 @@ extension ProgressManager {
599611 // Property doesn't exist yet in child - need to fetch it
600612 if let child = child. manager {
601613 dirtyChildren. append ( ( idx, child) )
614+ } else {
615+ // Child manager is deallocated, use default value
616+ let isAlive = false
617+ nonDirtySummaries. append ( ( idx, property. defaultValue, isAlive) )
602618 }
603619 }
604620 }
@@ -653,6 +669,10 @@ extension ProgressManager {
653669 if childPropertyState. isDirty {
654670 if let child = child. manager {
655671 dirtyChildren. append ( ( idx, child) )
672+ } else {
673+ // Child is dirty but manager is deallocated - use last known value
674+ let isAlive = false
675+ nonDirtySummaries. append ( ( idx, childPropertyState. value, isAlive) )
656676 }
657677 } else {
658678 let isAlive = child. manager != nil
@@ -662,6 +682,10 @@ extension ProgressManager {
662682 // Property doesn't exist yet in child - need to fetch it
663683 if let child = child. manager {
664684 dirtyChildren. append ( ( idx, child) )
685+ } else {
686+ // Child manager is deallocated, use default value
687+ let isAlive = false
688+ nonDirtySummaries. append ( ( idx, property. defaultValue, isAlive) )
665689 }
666690 }
667691 }
@@ -716,6 +740,10 @@ extension ProgressManager {
716740 if childPropertyState. isDirty {
717741 if let child = child. manager {
718742 dirtyChildren. append ( ( idx, child) )
743+ } else {
744+ // Child is dirty but manager is deallocated - use last known value
745+ let isAlive = false
746+ nonDirtySummaries. append ( ( idx, childPropertyState. value, isAlive) )
719747 }
720748 } else {
721749 let isAlive = child. manager != nil
@@ -725,6 +753,10 @@ extension ProgressManager {
725753 // Property doesn't exist yet in child - need to fetch it
726754 if let child = child. manager {
727755 dirtyChildren. append ( ( idx, child) )
756+ } else {
757+ // Child manager is deallocated, use default value
758+ let isAlive = false
759+ nonDirtySummaries. append ( ( idx, property. defaultSummary, isAlive) )
728760 }
729761 }
730762 }
@@ -779,6 +811,10 @@ extension ProgressManager {
779811 if childPropertyState. isDirty {
780812 if let child = child. manager {
781813 dirtyChildren. append ( ( idx, child) )
814+ } else {
815+ // Child is dirty but manager is deallocated - use last known value
816+ let isAlive = false
817+ nonDirtySummaries. append ( ( idx, childPropertyState. value, isAlive) )
782818 }
783819 } else {
784820 let isAlive = child. manager != nil
@@ -788,6 +824,10 @@ extension ProgressManager {
788824 // Property doesn't exist yet in child - need to fetch it
789825 if let child = child. manager {
790826 dirtyChildren. append ( ( idx, child) )
827+ } else {
828+ // Child manager is deallocated, use default value
829+ let isAlive = false
830+ nonDirtySummaries. append ( ( idx, property. defaultSummary, isAlive) )
791831 }
792832 }
793833 }
@@ -842,6 +882,10 @@ extension ProgressManager {
842882 if childPropertyState. isDirty {
843883 if let child = child. manager {
844884 dirtyChildren. append ( ( idx, child) )
885+ } else {
886+ // Child is dirty but manager is deallocated - use last known value
887+ let isAlive = false
888+ nonDirtySummaries. append ( ( idx, childPropertyState. value, isAlive) )
845889 }
846890 } else {
847891 let isAlive = child. manager != nil
@@ -851,6 +895,10 @@ extension ProgressManager {
851895 // Property doesn't exist yet in child - need to fetch it
852896 if let child = child. manager {
853897 dirtyChildren. append ( ( idx, child) )
898+ } else {
899+ // Child manager is deallocated, use default value
900+ let isAlive = false
901+ nonDirtySummaries. append ( ( idx, property. defaultSummary, isAlive) )
854902 }
855903 }
856904 }
@@ -905,6 +953,10 @@ extension ProgressManager {
905953 if childPropertyState. isDirty {
906954 if let child = child. manager {
907955 dirtyChildren. append ( ( idx, child) )
956+ } else {
957+ // Child is dirty but manager is deallocated - use last known value
958+ let isAlive = false
959+ nonDirtySummaries. append ( ( idx, childPropertyState. value, isAlive) )
908960 }
909961 } else {
910962 let isAlive = child. manager != nil
@@ -914,6 +966,10 @@ extension ProgressManager {
914966 // Property doesn't exist yet in child - need to fetch it
915967 if let child = child. manager {
916968 dirtyChildren. append ( ( idx, child) )
969+ } else {
970+ // Child manager is deallocated, use default value
971+ let isAlive = false
972+ nonDirtySummaries. append ( ( idx, property. defaultValue, isAlive) )
917973 }
918974 }
919975 }
0 commit comments