From 7c20dc65d9092b21a2e0d85b641c8319c059357e Mon Sep 17 00:00:00 2001 From: Joshua Gross Date: Thu, 10 Oct 2019 21:58:12 -0700 Subject: [PATCH] Add asserts and annotations for FabricUIManager UI-thread methods Summary: These methods are (or should be) only called on the UI thread. Make those assumptions explicit. Reviewed By: mdvacca Differential Revision: D17865205 fbshipit-source-id: 9b3acf8f3215a07b1a667ced55e50e99a488de79 --- .../main/java/com/facebook/react/fabric/FabricUIManager.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java b/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java index c37b46c738e..2f953ede7fc 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java @@ -6,6 +6,7 @@ */ package com.facebook.react.fabric; +import static com.facebook.infer.annotation.ThreadConfined.ANY; import static com.facebook.infer.annotation.ThreadConfined.UI; import static com.facebook.react.fabric.FabricComponents.getFabricComponentName; import static com.facebook.react.fabric.mounting.LayoutMetricsConversions.getMaxSize; @@ -162,6 +163,7 @@ public class FabricUIManager implements UIManager, LifecycleEventListener { return rootTag; } + @ThreadConfined(ANY) public int startSurface( final T rootView, final String moduleName, @@ -194,6 +196,7 @@ public class FabricUIManager implements UIManager, LifecycleEventListener { mEventDispatcher.dispatchAllEvents(); } + @ThreadConfined(ANY) public void stopSurface(int surfaceID) { mBinding.stopSurface(surfaceID); } @@ -379,7 +382,9 @@ public class FabricUIManager implements UIManager, LifecycleEventListener { } @Override + @ThreadConfined(UI) public void synchronouslyUpdateViewOnUIThread(int reactTag, ReadableMap props) { + UiThreadUtil.assertOnUiThread(); long time = SystemClock.uptimeMillis(); int commitNumber = mCurrentSynchronousCommitNumber++; try {