ShadowViewMutationList calculateShadowViewMutations( const ShadowNode &oldRootShadowNode, const ShadowNode &newRootShadowNode ) { // Root shadow nodes must have same tag. assert(oldRootShadowNode.getTag() == newRootShadowNode.getTag()); ShadowViewMutationList mutations; if (oldRootShadowNode != newRootShadowNode) { mutations.push_back( ShadowViewMutation::UpdateMutation( ShadowView(), ShadowView(oldRootShadowNode), ShadowView(newRootShadowNode), -1 ) ); } calculateShadowViewMutations( mutations, ShadowView(oldRootShadowNode), sliceChildShadowNodeViewPairs(oldRootShadowNode), sliceChildShadowNodeViewPairs(newRootShadowNode) ); return mutations; }
ShadowView::ShadowView(const ShadowNode &shadowNode): componentName(shadowNode.getComponentName()), componentHandle(shadowNode.getComponentHandle()), tag(shadowNode.getTag()), props(shadowNode.getProps()), eventEmitter(shadowNode.getEventEmitter()), layoutMetrics(layoutMetricsFromShadowNode(shadowNode)), localData(shadowNode.getLocalData()) {}