Skip to content

Commit 0890a2d

Browse files
committed
text-buffer-wrapper
1 parent 0698755 commit 0890a2d

1 file changed

Lines changed: 11 additions & 10 deletions

File tree

src/bindings/text-buffer-wrapper.cc

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -425,7 +425,7 @@ class TextBufferSearcher : public Nan::AsyncWorker {
425425
}
426426

427427
void HandleOKCallback() {
428-
delete snapshot;
428+
429429
Local<Value> argv[] = {Nan::Null(), encode_ranges(matches)};
430430
callback->Call(2, argv, async_resource);
431431
}
@@ -586,7 +586,8 @@ void TextBufferWrapper::find_words_with_subsequence_in_range(const Nan::Function
586586
void CancelIfQueued() {
587587
int lock_status = uv_rwlock_trywrlock(&snapshot_lock);
588588
if (lock_status == 0) {
589-
delete snapshot;
589+
590+
590591
snapshot = nullptr;
591592
uv_rwlock_wrunlock(&snapshot_lock);
592593
}
@@ -599,7 +600,7 @@ void TextBufferWrapper::find_words_with_subsequence_in_range(const Nan::Function
599600
return;
600601
}
601602

602-
delete snapshot;
603+
603604
auto text_buffer_wrapper = Nan::ObjectWrap::Unwrap<TextBufferWrapper>(Nan::New(buffer));
604605
text_buffer_wrapper->outstanding_workers.erase(this);
605606

@@ -730,7 +731,7 @@ class Loader {
730731
Nan::Callback *progress_callback;
731732
Nan::AsyncResource *async_resource;
732733
TextBuffer *buffer;
733-
TextBuffer::Snapshot *snapshot;
734+
std::shared_ptr<TextBuffer::Snapshot> snapshot;
734735
string file_name;
735736
string encoding_name;
736737
optional<Text> loaded_text;
@@ -778,17 +779,17 @@ class Loader {
778779

779780
pair<Local<Value>, Local<Value>> Finish(Nan::AsyncResource* caller_async_resource = nullptr) {
780781
if (error) {
781-
delete snapshot;
782+
782783
return {error_to_js(*error, encoding_name, file_name), Nan::Undefined()};
783784
}
784785

785786
if (cancelled || (!force && buffer->is_modified())) {
786-
delete snapshot;
787+
787788
return {Nan::Null(), Nan::Null()};
788789
}
789790

790791
Patch inverted_changes = buffer->get_inverted_changes(snapshot);
791-
delete snapshot;
792+
792793

793794
if (compute_patch && inverted_changes.get_change_count() > 0) {
794795
inverted_changes.combine(patch);
@@ -1004,7 +1005,7 @@ class BaseTextComparisonWorker : public Nan::AsyncWorker {
10041005
}
10051006

10061007
void HandleOKCallback() {
1007-
delete snapshot;
1008+
10081009
if (error) {
10091010
Local<Value> argv[] = {error_to_js(*error, encoding_name, file_name)};
10101011
callback->Call(1, argv, async_resource);
@@ -1090,11 +1091,11 @@ class SaveWorker : public Nan::AsyncWorker {
10901091

10911092
Local<Value> Finish() {
10921093
if (error) {
1093-
delete snapshot;
1094+
10941095
return error_to_js(*error, encoding_name, file_name);
10951096
} else {
10961097
snapshot->flush_preceding_changes();
1097-
delete snapshot;
1098+
10981099
return Nan::Null();
10991100
}
11001101
}

0 commit comments

Comments
 (0)