@@ -51,11 +51,6 @@ JavaTurboModule::~JavaTurboModule() {
51
51
});
52
52
}
53
53
54
- bool JavaTurboModule::isPromiseAsyncDispatchEnabled_ = false ;
55
- void JavaTurboModule::enablePromiseAsyncDispatch (bool enable) {
56
- isPromiseAsyncDispatchEnabled_ = enable;
57
- }
58
-
59
54
JavaTurboModule::JavaTurboModule (
60
55
const InitParams ¶ms,
61
56
TurboModuleSchema &&schema)
@@ -322,8 +317,7 @@ JNIArgs JavaTurboModule::convertJSIArgsToJNIArgs(
322
317
323
318
auto makeGlobalIfNecessary =
324
319
[&globalRefs, env, valueKind](jobject obj) -> jobject {
325
- if (valueKind == VoidKind ||
326
- (valueKind == PromiseKind && isPromiseAsyncDispatchEnabled_)) {
320
+ if (valueKind == VoidKind || valueKind == PromiseKind) {
327
321
jobject globalObj = env->NewGlobalRef (obj);
328
322
globalRefs.push_back (globalObj);
329
323
env->DeleteLocalRef (obj);
@@ -491,9 +485,7 @@ jsi::Value JavaTurboModule::invokeJavaMethod(
491
485
const char *methodName = methodNameStr.c_str ();
492
486
const char *moduleName = name_.c_str ();
493
487
494
- bool isMethodSync =
495
- !(valueKind == VoidKind ||
496
- (valueKind == PromiseKind && isPromiseAsyncDispatchEnabled_));
488
+ bool isMethodSync = !(valueKind == VoidKind || valueKind == PromiseKind);
497
489
498
490
if (isMethodSync) {
499
491
TMPL::syncMethodCallStart (moduleName, methodName);
@@ -834,60 +826,48 @@ jsi::Value JavaTurboModule::invokeJavaMethod(
834
826
const char *moduleName = moduleNameStr.c_str ();
835
827
const char *methodName = methodNameStr.c_str ();
836
828
837
- if (isPromiseAsyncDispatchEnabled_) {
838
- jobject globalPromise = env->NewGlobalRef (promise);
839
-
840
- globalRefs.push_back (globalPromise);
841
- env->DeleteLocalRef (promise);
842
-
843
- jargs[argCount].l = globalPromise;
844
- TMPL::asyncMethodCallArgConversionEnd (moduleName, methodName);
845
- TMPL::asyncMethodCallDispatch (moduleName, methodName);
846
-
847
- nativeInvoker_->invokeAsync (
848
- [jargs,
849
- globalRefs,
850
- methodID,
851
- instance_ = instance_,
852
- moduleNameStr,
853
- methodNameStr,
854
- id = getUniqueId ()]() mutable -> void {
855
- /* *
856
- * TODO(ramanpreet): Why do we have to require the
857
- * environment again? Why does JNI crash when we use the env
858
- * from the upper scope?
859
- */
860
- JNIEnv *env = jni::Environment::current ();
861
- const char *moduleName = moduleNameStr.c_str ();
862
- const char *methodName = methodNameStr.c_str ();
863
-
864
- TMPL::asyncMethodCallExecutionStart (
865
- moduleName, methodName, id);
866
- env->CallVoidMethodA (
867
- instance_.get (), methodID, jargs.data ());
868
- try {
869
- FACEBOOK_JNI_THROW_PENDING_EXCEPTION ();
870
- } catch (...) {
871
- TMPL::asyncMethodCallExecutionFail (
872
- moduleName, methodName, id);
873
- throw ;
874
- }
875
-
876
- for (auto globalRef : globalRefs) {
877
- env->DeleteGlobalRef (globalRef);
878
- }
879
- TMPL::asyncMethodCallExecutionEnd (
829
+ jobject globalPromise = env->NewGlobalRef (promise);
830
+
831
+ globalRefs.push_back (globalPromise);
832
+ env->DeleteLocalRef (promise);
833
+
834
+ jargs[argCount].l = globalPromise;
835
+ TMPL::asyncMethodCallArgConversionEnd (moduleName, methodName);
836
+ TMPL::asyncMethodCallDispatch (moduleName, methodName);
837
+
838
+ nativeInvoker_->invokeAsync (
839
+ [jargs,
840
+ globalRefs,
841
+ methodID,
842
+ instance_ = instance_,
843
+ moduleNameStr,
844
+ methodNameStr,
845
+ id = getUniqueId ()]() mutable -> void {
846
+ /* *
847
+ * TODO(ramanpreet): Why do we have to require the
848
+ * environment again? Why does JNI crash when we use the env
849
+ * from the upper scope?
850
+ */
851
+ JNIEnv *env = jni::Environment::current ();
852
+ const char *moduleName = moduleNameStr.c_str ();
853
+ const char *methodName = methodNameStr.c_str ();
854
+
855
+ TMPL::asyncMethodCallExecutionStart (
856
+ moduleName, methodName, id);
857
+ env->CallVoidMethodA (instance_.get (), methodID, jargs.data ());
858
+ try {
859
+ FACEBOOK_JNI_THROW_PENDING_EXCEPTION ();
860
+ } catch (...) {
861
+ TMPL::asyncMethodCallExecutionFail (
880
862
moduleName, methodName, id);
881
- });
882
-
883
- } else {
884
- jargs[argCount].l = promise;
885
- TMPL::syncMethodCallArgConversionEnd (moduleName, methodName);
886
- TMPL::syncMethodCallExecutionStart (moduleName, methodName);
887
- env->CallVoidMethodA (instance_.get (), methodID, jargs.data ());
888
- TMPL::syncMethodCallExecutionEnd (moduleName, methodName);
889
- TMPL::syncMethodCallReturnConversionStart (moduleName, methodName);
890
- }
863
+ throw ;
864
+ }
865
+
866
+ for (auto globalRef : globalRefs) {
867
+ env->DeleteGlobalRef (globalRef);
868
+ }
869
+ TMPL::asyncMethodCallExecutionEnd (moduleName, methodName, id);
870
+ });
891
871
892
872
return jsi::Value::undefined ();
893
873
});
@@ -896,12 +876,8 @@ jsi::Value JavaTurboModule::invokeJavaMethod(
896
876
Promise.callAsConstructor (runtime, promiseConstructorArg);
897
877
checkJNIErrorForMethodCall ();
898
878
899
- if (isPromiseAsyncDispatchEnabled_) {
900
- TMPL::asyncMethodCallEnd (moduleName, methodName);
901
- } else {
902
- TMPL::syncMethodCallReturnConversionEnd (moduleName, methodName);
903
- TMPL::syncMethodCallEnd (moduleName, methodName);
904
- }
879
+ TMPL::asyncMethodCallEnd (moduleName, methodName);
880
+
905
881
return promise;
906
882
}
907
883
default :
0 commit comments