Skip to content

Commit 8cddf18

Browse files
committed
Switch to an API that should work with Electron's broken shared_ptr on Windows
1 parent d4b2848 commit 8cddf18

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/conversions.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ void InitConversions(Local<Object> exports, Local<External> data_ext) {
2222
data->end_index_key.Reset(Nan::Persistent<String>(Nan::New("endIndex").ToLocalChecked()));
2323
data->end_position_key.Reset(Nan::Persistent<String>(Nan::New("endPosition").ToLocalChecked()));
2424

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

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

3131
void TransferPoint(AddonData* data, const TSPoint &point) {

src/node.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ static inline void setup_transfer_buffer(AddonData* data, uint32_t node_count) {
2121
if (new_length > data->transfer_buffer_length) {
2222
data->transfer_buffer_length = new_length;
2323

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

2727
Nan::Set(
2828
Nan::New(data->module_exports),
2929
Nan::New("nodeTransferArray").ToLocalChecked(),
30-
Uint32Array::New(js_transfer_buffer, 0, data->transfer_buffer_length)
30+
Uint32Array::New(js_transfer_buffer.As<Uint8Array>()->Buffer(), 0, data->transfer_buffer_length)
3131
);
3232
}
3333
}

0 commit comments

Comments
 (0)