@@ -440,25 +440,18 @@ WriteBatch FirestoreInternal::batch() const {
440440 return WriteBatch (new WriteBatchInternal (mutable_this (), result));
441441}
442442
443- Future<void > FirestoreInternal::RunTransaction (TransactionFunction* update,
444- bool is_lambda) {
443+ Future<void > FirestoreInternal::RunTransaction (
444+ std::function<Error(Transaction&, std::string&)> update) {
445+ auto * lambda_update = new LambdaTransactionFunction (Move (update));
445446 Env env = GetEnv ();
446447 Local<Object> transaction_function =
447- TransactionInternal::Create (env, this , update );
448+ TransactionInternal::Create (env, this , lambda_update );
448449 Local<Task> task = env.Call (obj_, kRunTransaction , transaction_function);
449450
450451 if (!env.ok ()) return {};
451452
452- auto * completion =
453- static_cast <LambdaTransactionFunction*>(is_lambda ? update : nullptr );
454453 return promises_->NewFuture <void >(env, AsyncFn::kRunTransaction , task,
455- completion);
456- }
457-
458- Future<void > FirestoreInternal::RunTransaction (
459- std::function<Error(Transaction&, std::string&)> update) {
460- auto * lambda_update = new LambdaTransactionFunction (Move (update));
461- return RunTransaction (lambda_update, /* is_lambda=*/ true );
454+ lambda_update);
462455}
463456
464457Future<void > FirestoreInternal::DisableNetwork () {
0 commit comments