From 847876704429c804311c3020fb9a5e2ebcdb643e Mon Sep 17 00:00:00 2001 From: Aaron Chiu Date: Thu, 27 Apr 2017 11:34:21 -0700 Subject: [PATCH] wrap CREATE_MODULE and INITIALIZE_MODULE markers with try/finally Reviewed By: alexeylang Differential Revision: D4961142 fbshipit-source-id: 7d25103b2839f15bb6a913eba7eb60ef0b07eb23 --- .../com/facebook/react/LazyReactPackage.java | 8 +++--- .../react/NativeModuleRegistryBuilder.java | 8 ++++-- .../react/cxxbridge/ModuleHolder.java | 27 ++++++++++++------- 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.java b/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.java index 3e8532298..59f074bb2 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.java +++ b/ReactAndroid/src/main/java/com/facebook/react/LazyReactPackage.java @@ -75,13 +75,13 @@ public abstract class LazyReactPackage implements ReactPackage { SystraceMessage.beginSection(TRACE_TAG_REACT_JAVA_BRIDGE, "createNativeModule") .arg("module", holder.getType()) .flush(); + ReactMarker.logMarker( + ReactMarkerConstants.CREATE_MODULE_START, + holder.getType().getSimpleName()); try { - ReactMarker.logMarker( - ReactMarkerConstants.CREATE_MODULE_START, - holder.getType().getSimpleName()); nativeModule = holder.getProvider().get(); - ReactMarker.logMarker(ReactMarkerConstants.CREATE_MODULE_END); } finally { + ReactMarker.logMarker(ReactMarkerConstants.CREATE_MODULE_END); Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE); } modules.add(nativeModule); diff --git a/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.java b/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.java index bc8956c1e..c8693345f 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.java +++ b/ReactAndroid/src/main/java/com/facebook/react/NativeModuleRegistryBuilder.java @@ -62,11 +62,15 @@ public class NativeModuleRegistryBuilder { throw new IllegalStateException("Native Java module " + type.getSimpleName() + " should be annotated with @ReactModule and added to a @ReactModuleList."); } + NativeModule module; ReactMarker.logMarker( ReactMarkerConstants.CREATE_MODULE_START, moduleSpec.getType().getName()); - NativeModule module = moduleSpec.getProvider().get(); - ReactMarker.logMarker(ReactMarkerConstants.CREATE_MODULE_END); + try { + module = moduleSpec.getProvider().get(); + } finally { + ReactMarker.logMarker(ReactMarkerConstants.CREATE_MODULE_END); + } moduleHolder = new ModuleHolder(module); } else { moduleHolder = new ModuleHolder(reactModuleInfo, moduleSpec.getProvider()); diff --git a/ReactAndroid/src/main/java/com/facebook/react/cxxbridge/ModuleHolder.java b/ReactAndroid/src/main/java/com/facebook/react/cxxbridge/ModuleHolder.java index 86c10e8cf..9285a9c9f 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/cxxbridge/ModuleHolder.java +++ b/ReactAndroid/src/main/java/com/facebook/react/cxxbridge/ModuleHolder.java @@ -100,14 +100,18 @@ public class ModuleHolder { SystraceMessage.beginSection(TRACE_TAG_REACT_JAVA_BRIDGE, "createModule") .arg("name", mName) .flush(); - NativeModule module = assertNotNull(mProvider).get(); - mProvider = null; - if (mInitializeNeeded) { - doInitialize(module); - mInitializeNeeded = false; + NativeModule module; + try { + module = assertNotNull(mProvider).get(); + mProvider = null; + if (mInitializeNeeded) { + doInitialize(module); + mInitializeNeeded = false; + } + } finally { + Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE); + ReactMarker.logMarker(CREATE_MODULE_END); } - Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE); - ReactMarker.logMarker(CREATE_MODULE_END); return module; } @@ -121,8 +125,11 @@ public class ModuleHolder { } section.flush(); ReactMarker.logMarker(ReactMarkerConstants.INITIALIZE_MODULE_START, mName); - module.initialize(); - ReactMarker.logMarker(ReactMarkerConstants.INITIALIZE_MODULE_END); - Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE); + try { + module.initialize(); + } finally { + ReactMarker.logMarker(ReactMarkerConstants.INITIALIZE_MODULE_END); + Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE); + } } }