Skip to content

Commit

Permalink
Switch to an API that should work with Electron's broken shared_ptr o…
Browse files Browse the repository at this point in the history
…n Windows
  • Loading branch information
segevfiner committed Dec 28, 2023
1 parent 44bd12a commit 779e0d6
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
6 changes: 3 additions & 3 deletions src/conversions.cc
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ void InitConversions(Local<Object> exports, Local<External> data_ext) {
data->end_index_key.Reset(Nan::Persistent<String>(Nan::New("endIndex").ToLocalChecked()));
data->end_position_key.Reset(Nan::Persistent<String>(Nan::New("endPosition").ToLocalChecked()));

auto js_point_transfer_buffer = ArrayBuffer::New(Isolate::GetCurrent(), 2 * sizeof(uint32_t));
data->point_transfer_buffer = (uint32_t *)(js_point_transfer_buffer->GetBackingStore()->Data());
auto js_point_transfer_buffer = Nan::NewBuffer(2 * sizeof(uint32_t)).ToLocalChecked();
data->point_transfer_buffer = reinterpret_cast<uint32_t*>(node::Buffer::Data(js_point_transfer_buffer));

Nan::Set(exports, Nan::New("pointTransferArray").ToLocalChecked(), Uint32Array::New(js_point_transfer_buffer, 0, 2));
Nan::Set(exports, Nan::New("pointTransferArray").ToLocalChecked(), Uint32Array::New(js_point_transfer_buffer.As<Uint8Array>()->Buffer(), 0, 2));
}

void TransferPoint(AddonData* data, const TSPoint &point) {
Expand Down
6 changes: 3 additions & 3 deletions src/node.cc
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ static inline void setup_transfer_buffer(AddonData* data, uint32_t node_count) {
if (new_length > data->transfer_buffer_length) {
data->transfer_buffer_length = new_length;

auto js_transfer_buffer = ArrayBuffer::New(Isolate::GetCurrent(), data->transfer_buffer_length * sizeof(uint32_t));
data->transfer_buffer = (uint32_t *)(js_transfer_buffer->GetBackingStore()->Data());
auto js_transfer_buffer = Nan::NewBuffer(data->transfer_buffer_length * sizeof(uint32_t)).ToLocalChecked();
data->transfer_buffer = reinterpret_cast<uint32_t*>(node::Buffer::Data(js_transfer_buffer));

Nan::Set(
Nan::New(data->module_exports),
Nan::New("nodeTransferArray").ToLocalChecked(),
Uint32Array::New(js_transfer_buffer, 0, data->transfer_buffer_length)
Uint32Array::New(js_transfer_buffer.As<Uint8Array>()->Buffer(), 0, data->transfer_buffer_length)
);
}
}
Expand Down

0 comments on commit 779e0d6

Please sign in to comment.