/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #pragma once #include #include #include #include #include namespace facebook { namespace react { using GarbageCollectionTrigger = std::function; class LeakChecker final { public: LeakChecker(RuntimeExecutor runtimeExecutor); void uiManagerDidCreateShadowNodeFamily( ShadowNodeFamily::Shared const &shadowNodeFamily) const; void stopSurface(SurfaceId surfaceId); private: void checkSurfaceForLeaks(SurfaceId surfaceId) const; RuntimeExecutor const runtimeExecutor_{}; WeakFamilyRegistry registry_{}; SurfaceId previouslyStoppedSurface_{}; }; } // namespace react } // namespace facebook