MCPcopy Index your code
hub / github.com/nodejs/node-addon-api / CreateExternalBufferWithFinalizeHint

Function CreateExternalBufferWithFinalizeHint

test/array_buffer.cc:87–117  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

85}
86
87Value CreateExternalBufferWithFinalizeHint(const CallbackInfo& info) {
88 finalizeCount = 0;
89
90 uint8_t* data = new uint8_t[testLength];
91
92 char* hint = nullptr;
93 ArrayBuffer buffer = ArrayBuffer::New(
94 info.Env(),
95 data,
96 testLength,
97 [](Env /*env*/, void* finalizeData, char* /*finalizeHint*/) {
98 delete[] static_cast<uint8_t*>(finalizeData);
99 finalizeCount++;
100 },
101 hint);
102
103 if (buffer.ByteLength() != testLength) {
104 Error::New(info.Env(), "Incorrect buffer length.")
105 .ThrowAsJavaScriptException();
106 return Value();
107 }
108
109 if (buffer.Data() != data) {
110 Error::New(info.Env(), "Incorrect buffer data.")
111 .ThrowAsJavaScriptException();
112 return Value();
113 }
114
115 InitData(data, testLength);
116 return buffer;
117}
118
119void CheckBuffer(const CallbackInfo& info) {
120 if (!info[0].IsArrayBuffer()) {

Callers

nothing calls this directly

Calls 6

EnvMethod · 0.80
ByteLengthMethod · 0.80
DataMethod · 0.80
InitDataFunction · 0.70
ValueClass · 0.50

Tested by

no test coverage detected