Fix reload for Image views in Android
Summary: This diff fixes the release of ImageRequest object. The responseFutureSplitter_ can be destroyed by the time ~ImageRequest is executed. See P60163877 for original crash (this crash was reproducible when reloading or closing a Fabric screen that contains several images. Reviewed By: shergin Differential Revision: D10282207 fbshipit-source-id: 4f0894959e54f6d15b98e216df102e764866e387
This commit is contained in:
parent
8325e09e5c
commit
5d414665ea
|
@ -41,8 +41,6 @@ class ImageRequest final {
|
|||
const ImageSource &imageSource,
|
||||
folly::Future<ImageResponse> &&responseFuture);
|
||||
|
||||
ImageRequest();
|
||||
|
||||
/*
|
||||
* The move constructor.
|
||||
*/
|
||||
|
|
|
@ -20,7 +20,7 @@ ImageManager::~ImageManager() {
|
|||
|
||||
ImageRequest ImageManager::requestImage(const ImageSource &imageSource) const {
|
||||
// Not implemented.
|
||||
return {};
|
||||
abort();
|
||||
}
|
||||
|
||||
} // namespace react
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* This source code is licensed under the MIT license found in the
|
||||
* LICENSE file in the root directory of this source tree.
|
||||
*/
|
||||
|
||||
#include "ImageRequest.h"
|
||||
|
||||
namespace facebook {
|
||||
namespace react {
|
||||
|
||||
ImageRequest::ImageRequest(
|
||||
const ImageSource &imageSource,
|
||||
folly::Future<ImageResponse> &&responseFuture) {
|
||||
// Not implemented.
|
||||
}
|
||||
|
||||
ImageRequest::ImageRequest(ImageRequest &&other) noexcept
|
||||
: imageSource_(std::move(other.imageSource_)),
|
||||
responseFutureSplitter_(std::move(other.responseFutureSplitter_)) {
|
||||
// Not implemented.
|
||||
}
|
||||
|
||||
ImageRequest::~ImageRequest() {
|
||||
// Not implemented.
|
||||
}
|
||||
|
||||
folly::Future<ImageResponse> ImageRequest::getResponseFuture() const {
|
||||
// Not implemented.
|
||||
abort();
|
||||
}
|
||||
|
||||
} // namespace react
|
||||
} // namespace facebook
|
|
@ -16,8 +16,6 @@ class ImageRequest::ImageNoLongerNeededException : public std::logic_error {
|
|||
: std::logic_error("Image no longer needed.") {}
|
||||
};
|
||||
|
||||
ImageRequest::ImageRequest() {}
|
||||
|
||||
ImageRequest::ImageRequest(
|
||||
const ImageSource &imageSource,
|
||||
folly::Future<ImageResponse> &&responseFuture)
|
Loading…
Reference in New Issue