Skip to content

Commit 9ec1d48

Browse files
coadometa-codesync[bot]
authored andcommitted
Make animationbackend implementation headers private (#58858)
Summary: Pull Request resolved: #58858 `AnimatedPropsSerializer.h`, `AnimatedPropsRegistry.h` and `AnimationBackendCommitHook.h` are implementation details of `AnimationBackend` with no users outside React Native, so lower them from "for frameworks" to private. `AnimationBackend.h` (for frameworks) previously included the registry and commit hook headers, which would leak private headers to its consumers, so we decouple them: - forward-declare `AnimatedPropsRegistry`, `AnimationBackendCommitHook` and `SurfaceUpdates`; - hold the commit hook through `std::unique_ptr` and define the destructor out of line; - make `commitUpdates` private; it is only called from within `AnimationBackend`. Changelog: [Internal] Reviewed By: christophpurrer Differential Revision: D123418519
1 parent a264b62 commit 9ec1d48

14 files changed

Lines changed: 27 additions & 17 deletions

‎packages/react-native/ReactCommon/react/renderer/animationbackend/AnimatedPropsRegistry.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
#pragma once
99

10-
#include <react/cxxstableapi/FrameworksGuard.h>
10+
#include <react/cxxstableapi/PrivateGuard.h>
1111

1212
#include <React/RendererCore.h>
1313
#include <React/View.h>

‎packages/react-native/ReactCommon/react/renderer/animationbackend/AnimatedPropsSerializer.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
#pragma once
99

10-
#include <react/cxxstableapi/FrameworksGuard.h>
10+
#include <react/cxxstableapi/PrivateGuard.h>
1111

1212
#include <folly/dynamic.h>
1313
#include "AnimatedProps.h"

‎packages/react-native/ReactCommon/react/renderer/animationbackend/AnimationBackend.cpp‎

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
#include "AnimationBackend.h"
99
#include "AnimatedPropsRegistry.h"
10+
#include "AnimationBackendCommitHook.h"
1011

1112
#include <react/debug/react_native_assert.h>
1213
#include <react/featureflags/ReactNativeFeatureFlags.h>
@@ -53,7 +54,10 @@ AnimationBackend::AnimationBackend(
5354
std::shared_ptr<UIManager> uiManager)
5455
: animatedPropsRegistry_(std::make_shared<AnimatedPropsRegistry>()),
5556
animationChoreographer_(std::move(animationChoreographer)),
56-
commitHook_(*uiManager, animatedPropsRegistry_),
57+
commitHook_(
58+
std::make_unique<AnimationBackendCommitHook>(
59+
*uiManager,
60+
animatedPropsRegistry_)),
5761
uiManager_(std::move(uiManager)) {
5862
react_native_assert(uiManager_.expired() == false);
5963

@@ -75,6 +79,8 @@ AnimationBackend::AnimationBackend(
7579
}
7680
}
7781

82+
AnimationBackend::~AnimationBackend() = default;
83+
7884
void AnimationBackend::unpackMutations(
7985
AnimationMutations& mutations,
8086
std::unordered_map<SurfaceId, SurfaceUpdates>& surfaceUpdates,

‎packages/react-native/ReactCommon/react/renderer/animationbackend/AnimationBackend.h‎

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,19 @@
1515
#include <react/renderer/uimanager/UIManagerAnimationBackend.h>
1616
#include <functional>
1717
#include <memory>
18+
#include <mutex>
1819
#include <set>
20+
#include <unordered_map>
1921
#include <vector>
2022
#include "AnimatedProps.h"
21-
#include "AnimatedPropsRegistry.h"
22-
#include "AnimationBackendCommitHook.h"
2323
#include "AnimationChoreographer.h"
2424

2525
namespace facebook::react {
2626

2727
class AnimationBackend;
28+
class AnimationBackendCommitHook;
29+
class AnimatedPropsRegistry;
30+
struct SurfaceUpdates;
2831

2932
struct AnimationMutation {
3033
Tag tag;
@@ -53,7 +56,7 @@ class AnimationBackend : public UIManagerAnimationBackend {
5356
AnimationBackend(
5457
std::shared_ptr<AnimationChoreographer> animationChoreographer,
5558
std::shared_ptr<UIManager> uiManager);
56-
void commitUpdates(SurfaceId surfaceId, SurfaceUpdates &surfaceUpdates);
59+
~AnimationBackend() override;
5760
void synchronouslyUpdateProps(const std::unordered_map<Tag, AnimatedProps> &updates);
5861
void requestAsyncFlushForSurfaces(const std::set<SurfaceId> &surfaces);
5962
void clearRegistry(SurfaceId surfaceId) override;
@@ -67,6 +70,7 @@ class AnimationBackend : public UIManagerAnimationBackend {
6770
void stop(CallbackId callbackId) override;
6871

6972
private:
73+
void commitUpdates(SurfaceId surfaceId, SurfaceUpdates &surfaceUpdates);
7074
void unpackMutations(
7175
AnimationMutations &mutations,
7276
std::unordered_map<SurfaceId, SurfaceUpdates> &surfaceUpdates,
@@ -78,7 +82,7 @@ class AnimationBackend : public UIManagerAnimationBackend {
7882
std::vector<CallbackWithId> callbacks;
7983
std::shared_ptr<AnimatedPropsRegistry> animatedPropsRegistry_;
8084
std::shared_ptr<AnimationChoreographer> animationChoreographer_;
81-
AnimationBackendCommitHook commitHook_;
85+
std::unique_ptr<AnimationBackendCommitHook> commitHook_;
8286
std::weak_ptr<UIManager> uiManager_;
8387
std::shared_ptr<CallInvoker> jsInvoker_;
8488
bool isRenderCallbackStarted_{false};

‎packages/react-native/ReactCommon/react/renderer/animationbackend/AnimationBackendCommitHook.h‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
#pragma once
99

10-
#include <react/cxxstableapi/FrameworksGuard.h>
10+
#include <react/cxxstableapi/PrivateGuard.h>
1111

1212
#include <React/RendererCore.h>
1313
#include <react/renderer/uimanager/UIManager.h>

‎scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1568,9 +1568,9 @@ class facebook::react::AnimationBackend : public facebook::react::UIManagerAnima
15681568
public virtual void registerJSInvoker(std::shared_ptr<facebook::react::CallInvoker> jsInvoker) override;
15691569
public virtual void stop(facebook::react::CallbackId callbackId) override;
15701570
public virtual void trigger() override;
1571-
public void commitUpdates(facebook::react::SurfaceId surfaceId, facebook::react::SurfaceUpdates& surfaceUpdates);
15721571
public void requestAsyncFlushForSurfaces(const std::set<facebook::react::SurfaceId>& surfaces);
15731572
public void synchronouslyUpdateProps(const std::unordered_map<facebook::react::Tag, facebook::react::AnimatedProps>& updates);
1573+
public ~AnimationBackend() override;
15741574
}
15751575

15761576
class facebook::react::AnimationBackendCommitHook : public facebook::react::UIManagerCommitHook {

‎scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1563,9 +1563,9 @@ class facebook::react::AnimationBackend : public facebook::react::UIManagerAnima
15631563
public virtual void registerJSInvoker(std::shared_ptr<facebook::react::CallInvoker> jsInvoker) override;
15641564
public virtual void stop(facebook::react::CallbackId callbackId) override;
15651565
public virtual void trigger() override;
1566-
public void commitUpdates(facebook::react::SurfaceId surfaceId, facebook::react::SurfaceUpdates& surfaceUpdates);
15671566
public void requestAsyncFlushForSurfaces(const std::set<facebook::react::SurfaceId>& surfaces);
15681567
public void synchronouslyUpdateProps(const std::unordered_map<facebook::react::Tag, facebook::react::AnimatedProps>& updates);
1568+
public ~AnimationBackend() override;
15691569
}
15701570

15711571
class facebook::react::AnimationBackendCommitHook : public facebook::react::UIManagerCommitHook {

‎scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1567,9 +1567,9 @@ class facebook::react::AnimationBackend : public facebook::react::UIManagerAnima
15671567
public virtual void registerJSInvoker(std::shared_ptr<facebook::react::CallInvoker> jsInvoker) override;
15681568
public virtual void stop(facebook::react::CallbackId callbackId) override;
15691569
public virtual void trigger() override;
1570-
public void commitUpdates(facebook::react::SurfaceId surfaceId, facebook::react::SurfaceUpdates& surfaceUpdates);
15711570
public void requestAsyncFlushForSurfaces(const std::set<facebook::react::SurfaceId>& surfaces);
15721571
public void synchronouslyUpdateProps(const std::unordered_map<facebook::react::Tag, facebook::react::AnimatedProps>& updates);
1572+
public ~AnimationBackend() override;
15731573
}
15741574

15751575
class facebook::react::AnimationBackendCommitHook : public facebook::react::UIManagerCommitHook {

‎scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4118,9 +4118,9 @@ class facebook::react::AnimationBackend : public facebook::react::UIManagerAnima
41184118
public virtual void registerJSInvoker(std::shared_ptr<facebook::react::CallInvoker> jsInvoker) override;
41194119
public virtual void stop(facebook::react::CallbackId callbackId) override;
41204120
public virtual void trigger() override;
4121-
public void commitUpdates(facebook::react::SurfaceId surfaceId, facebook::react::SurfaceUpdates& surfaceUpdates);
41224121
public void requestAsyncFlushForSurfaces(const std::set<facebook::react::SurfaceId>& surfaces);
41234122
public void synchronouslyUpdateProps(const std::unordered_map<facebook::react::Tag, facebook::react::AnimatedProps>& updates);
4123+
public ~AnimationBackend() override;
41244124
}
41254125

41264126
class facebook::react::AnimationBackendCommitHook : public facebook::react::UIManagerCommitHook {

‎scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4106,9 +4106,9 @@ class facebook::react::AnimationBackend : public facebook::react::UIManagerAnima
41064106
public virtual void registerJSInvoker(std::shared_ptr<facebook::react::CallInvoker> jsInvoker) override;
41074107
public virtual void stop(facebook::react::CallbackId callbackId) override;
41084108
public virtual void trigger() override;
4109-
public void commitUpdates(facebook::react::SurfaceId surfaceId, facebook::react::SurfaceUpdates& surfaceUpdates);
41104109
public void requestAsyncFlushForSurfaces(const std::set<facebook::react::SurfaceId>& surfaces);
41114110
public void synchronouslyUpdateProps(const std::unordered_map<facebook::react::Tag, facebook::react::AnimatedProps>& updates);
4111+
public ~AnimationBackend() override;
41124112
}
41134113

41144114
class facebook::react::AnimationBackendCommitHook : public facebook::react::UIManagerCommitHook {

0 commit comments

Comments
 (0)