diff --git a/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm b/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm index 772b2b97a..b3ec1a834 100644 --- a/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm +++ b/React/Fabric/Mounting/ComponentViews/Image/RCTImageComponentView.mm @@ -21,7 +21,7 @@ @implementation RCTImageComponentView { UIImageView *_imageView; SharedImageLocalData _imageLocalData; - std::shared_ptr _coordinator; + const ImageResponseObserverCoordinator *_coordinator; std::unique_ptr _imageResponseObserverProxy; } @@ -92,7 +92,7 @@ } } -- (void)setCoordinator:(std::shared_ptr)coordinator { +- (void)setCoordinator:(const ImageResponseObserverCoordinator *)coordinator { if (_coordinator) { _coordinator->removeObserver(_imageResponseObserverProxy.get()); } diff --git a/React/Fabric/Mounting/ComponentViews/Slider/RCTSliderComponentView.mm b/React/Fabric/Mounting/ComponentViews/Slider/RCTSliderComponentView.mm index 286c36ac2..c8539c130 100644 --- a/React/Fabric/Mounting/ComponentViews/Slider/RCTSliderComponentView.mm +++ b/React/Fabric/Mounting/ComponentViews/Slider/RCTSliderComponentView.mm @@ -27,16 +27,18 @@ using namespace facebook::react; UIImage *_maximumTrackImage; UIImage *_thumbImage; - std::shared_ptr _trackImageCoordinator; + const ImageResponseObserverCoordinator *_trackImageCoordinator; + const ImageResponseObserverCoordinator *_minimumTrackImageCoordinator; + const ImageResponseObserverCoordinator *_maximumTrackImageCoordinator; + const ImageResponseObserverCoordinator *_thumbImageCoordinator; + std::unique_ptr _trackImageResponseObserverProxy; - std::shared_ptr _minimumTrackImageCoordinator; std::unique_ptr _minimumTrackImageResponseObserverProxy; - std::shared_ptr _maximumTrackImageCoordinator; std::unique_ptr _maximumTrackImageResponseObserverProxy; - std::shared_ptr _thumbImageCoordinator; std::unique_ptr _thumbImageResponseObserverProxy; } + - (instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { @@ -140,42 +142,42 @@ using namespace facebook::react; } } -- (void)setTrackImageCoordinator:(std::shared_ptr)coordinator { +- (void)setTrackImageCoordinator:(const ImageResponseObserverCoordinator *)coordinator { if (_trackImageCoordinator) { _trackImageCoordinator->removeObserver(_trackImageResponseObserverProxy.get()); } _trackImageCoordinator = coordinator; - if (_trackImageCoordinator != nullptr) { + if (_trackImageCoordinator) { _trackImageCoordinator->addObserver(_trackImageResponseObserverProxy.get()); } } -- (void)setMinimumTrackImageCoordinator:(std::shared_ptr)coordinator { +- (void)setMinimumTrackImageCoordinator:(const ImageResponseObserverCoordinator *)coordinator { if (_minimumTrackImageCoordinator) { _minimumTrackImageCoordinator->removeObserver(_minimumTrackImageResponseObserverProxy.get()); } _minimumTrackImageCoordinator = coordinator; - if (_minimumTrackImageCoordinator != nullptr) { + if (_minimumTrackImageCoordinator) { _minimumTrackImageCoordinator->addObserver(_minimumTrackImageResponseObserverProxy.get()); } } -- (void)setMaximumTrackImageCoordinator:(std::shared_ptr)coordinator { +- (void)setMaximumTrackImageCoordinator:(const ImageResponseObserverCoordinator *)coordinator { if (_maximumTrackImageCoordinator) { _maximumTrackImageCoordinator->removeObserver(_maximumTrackImageResponseObserverProxy.get()); } _maximumTrackImageCoordinator = coordinator; - if (_maximumTrackImageCoordinator != nullptr) { + if (_maximumTrackImageCoordinator) { _maximumTrackImageCoordinator->addObserver(_maximumTrackImageResponseObserverProxy.get()); } } -- (void)setThumbImageCoordinator:(std::shared_ptr)coordinator { +- (void)setThumbImageCoordinator:(const ImageResponseObserverCoordinator *)coordinator { if (_thumbImageCoordinator) { _thumbImageCoordinator->removeObserver(_thumbImageResponseObserverProxy.get()); } _thumbImageCoordinator = coordinator; - if (_thumbImageCoordinator != nullptr) { + if (_thumbImageCoordinator) { _thumbImageCoordinator->addObserver(_thumbImageResponseObserverProxy.get()); } } diff --git a/ReactCommon/fabric/imagemanager/ImageRequest.h b/ReactCommon/fabric/imagemanager/ImageRequest.h index 87e4c248f..0ccc95a6e 100644 --- a/ReactCommon/fabric/imagemanager/ImageRequest.h +++ b/ReactCommon/fabric/imagemanager/ImageRequest.h @@ -55,8 +55,7 @@ class ImageRequest final { /* * Get observer coordinator. */ - std::shared_ptr - getObserverCoordinator() const; + const ImageResponseObserverCoordinator *getObserverCoordinator() const; private: /* diff --git a/ReactCommon/fabric/imagemanager/platform/android/ImageRequest.cpp b/ReactCommon/fabric/imagemanager/platform/android/ImageRequest.cpp index e4ceb7d37..066783872 100644 --- a/ReactCommon/fabric/imagemanager/platform/android/ImageRequest.cpp +++ b/ReactCommon/fabric/imagemanager/platform/android/ImageRequest.cpp @@ -25,8 +25,8 @@ ImageRequest::~ImageRequest() { // Not implemented. } -std::shared_ptr -ImageRequest::getObserverCoordinator() const { +const ImageResponseObserverCoordinator *ImageRequest::getObserverCoordinator() + const { // Not implemented abort(); } diff --git a/ReactCommon/fabric/imagemanager/platform/ios/ImageRequest.cpp b/ReactCommon/fabric/imagemanager/platform/ios/ImageRequest.cpp index 1b9f4eb1a..195550352 100644 --- a/ReactCommon/fabric/imagemanager/platform/ios/ImageRequest.cpp +++ b/ReactCommon/fabric/imagemanager/platform/ios/ImageRequest.cpp @@ -40,9 +40,9 @@ void ImageRequest::setCancelationFunction( cancelRequest_ = cancelationFunction; } -std::shared_ptr -ImageRequest::getObserverCoordinator() const { - return coordinator_; +const ImageResponseObserverCoordinator *ImageRequest::getObserverCoordinator() + const { + return coordinator_.get(); } } // namespace react