diff --git a/src/node_sqlite.cc b/src/node_sqlite.cc index 6d35236dce0f82..f4ddfbb8c3a199 100644 --- a/src/node_sqlite.cc +++ b/src/node_sqlite.cc @@ -451,7 +451,7 @@ class BackupJob : public ThreadPoolWork { std::string dest_db, int pages, Local progressFunc) - : ThreadPoolWork(env, "node_sqlite3.BackupJob"), + : ThreadPoolWork(env, "node.sqlite.BackupJob"), env_(env), source_(source), pages_(pages), @@ -498,7 +498,7 @@ class BackupJob : public ThreadPoolWork { if (!(backup_status_ == SQLITE_OK || backup_status_ == SQLITE_DONE || backup_status_ == SQLITE_BUSY || backup_status_ == SQLITE_LOCKED)) { - HandleBackupError(resolver, backup_status_); + HandleBackupError(resolver); return; } @@ -569,24 +569,13 @@ class BackupJob : public ThreadPoolWork { private: void HandleBackupError(Local resolver) { Local e; - if (!CreateSQLiteError(env()->isolate(), dest_).ToLocal(&e)) { - Finalize(); - return; - } - + auto error = sqlite3_errcode(dest_) == SQLITE_OK + ? CreateSQLiteError(env()->isolate(), backup_status_) + : CreateSQLiteError(env()->isolate(), dest_); Finalize(); - resolver->Reject(env()->context(), e).ToChecked(); - } - - void HandleBackupError(Local resolver, int errcode) { - Local e; - if (!CreateSQLiteError(env()->isolate(), errcode).ToLocal(&e)) { - Finalize(); - return; + if (error.ToLocal(&e)) { + resolver->Reject(env()->context(), e).ToChecked(); } - - Finalize(); - resolver->Reject(env()->context(), e).ToChecked(); } Environment* env() const { return env_; }