@@ -31,11 +31,10 @@ void Backup::Process() {
31
31
}
32
32
33
33
while (inited && !locked && !queue.empty ()) {
34
- Call* call = queue.front ();
34
+ std::unique_ptr< Call> call ( queue.front () );
35
35
queue.pop ();
36
36
37
37
call->callback (call->baton );
38
- delete call;
39
38
}
40
39
}
41
40
@@ -86,21 +85,17 @@ void Backup::CleanQueue() {
86
85
87
86
// Clear out the queue so that this object can get GC'ed.
88
87
while (!queue.empty ()) {
89
- Call* call = queue.front ();
88
+ std::unique_ptr< Call> call ( queue.front () );
90
89
queue.pop ();
91
90
92
- Napi::Function cb = call->baton ->callback .Value ();
91
+ std::unique_ptr<Baton> baton (call->baton );
92
+ Napi::Function cb = baton->callback .Value ();
93
93
94
94
if (inited && !cb.IsEmpty () &&
95
95
cb.IsFunction ()) {
96
96
TRY_CATCH_CALL (Value (), cb, 1 , argv);
97
97
called = true ;
98
98
}
99
-
100
- // We don't call the actual callback, so we have to make sure that
101
- // the baton gets destroyed.
102
- delete call->baton ;
103
- delete call;
104
99
}
105
100
106
101
// When we couldn't call a callback function, emit an error on the
@@ -113,13 +108,12 @@ void Backup::CleanQueue() {
113
108
else while (!queue.empty ()) {
114
109
// Just delete all items in the queue; we already fired an event when
115
110
// initializing the backup failed.
116
- Call* call = queue.front ();
111
+ std::unique_ptr< Call> call ( queue.front () );
117
112
queue.pop ();
118
113
119
114
// We don't call the actual callback, so we have to make sure that
120
115
// the baton gets destroyed.
121
116
delete call->baton ;
122
- delete call;
123
117
}
124
118
}
125
119
@@ -220,13 +214,14 @@ void Backup::Work_Initialize(napi_env e, void* data) {
220
214
}
221
215
222
216
void Backup::Work_AfterInitialize (napi_env e, napi_status status, void * data) {
223
- BACKUP_INIT (InitializeBaton);
217
+ std::unique_ptr<InitializeBaton> baton (static_cast <InitializeBaton*>(data));
218
+ Backup* backup = baton->backup ;
224
219
225
220
Napi::Env env = backup->Env ();
226
221
Napi::HandleScope scope (env);
227
222
228
223
if (backup->status != SQLITE_OK) {
229
- Error (baton);
224
+ Error (baton. get () );
230
225
backup->FinishAll ();
231
226
}
232
227
else {
@@ -282,7 +277,8 @@ void Backup::Work_Step(napi_env e, void* data) {
282
277
}
283
278
284
279
void Backup::Work_AfterStep (napi_env e, napi_status status, void * data) {
285
- BACKUP_INIT (StepBaton);
280
+ std::unique_ptr<StepBaton> baton (static_cast <StepBaton*>(data));
281
+ Backup* backup = baton->backup ;
286
282
287
283
Napi::Env env = backup->Env ();
288
284
Napi::HandleScope scope (env);
@@ -294,7 +290,7 @@ void Backup::Work_AfterStep(napi_env e, napi_status status, void* data) {
294
290
}
295
291
296
292
if (backup->status != SQLITE_OK && backup->status != SQLITE_DONE) {
297
- Error (baton);
293
+ Error (baton. get () );
298
294
}
299
295
else {
300
296
// Fire callbacks.
@@ -329,7 +325,8 @@ void Backup::Work_Finish(napi_env e, void* data) {
329
325
}
330
326
331
327
void Backup::Work_AfterFinish (napi_env e, napi_status status, void * data) {
332
- BACKUP_INIT (Baton);
328
+ std::unique_ptr<Baton> baton (static_cast <Baton*>(data));
329
+ Backup* backup = baton->backup ;
333
330
334
331
Napi::Env env = backup->Env ();
335
332
Napi::HandleScope scope (env);
0 commit comments