@@ -8,27 +8,37 @@ namespace margelo::crypto {
8
8
using namespace margelo ::nitro;
9
9
using namespace margelo ::nitro::crypto;
10
10
11
- std::future<std::shared_ptr<ArrayBuffer>> HybridRandom::randomFill (const std::shared_ptr<ArrayBuffer>& buffer, double dOffset,
12
- double dSize) {
11
+ std::future<std::shared_ptr<ArrayBuffer>>
12
+ HybridRandom::randomFill (const std::shared_ptr<ArrayBuffer>& buffer,
13
+ double dOffset,
14
+ double dSize) {
13
15
size_t size = checkSize (dSize);
14
- // copy the JSArrayBuffer that we do not own into a NativeArrayBuffer that we do own, before passing to sync function
16
+ // copy the JSArrayBuffer that we do not own into a NativeArrayBuffer that we
17
+ // do own, before passing to sync function
15
18
uint8_t * data = new uint8_t [size];
16
19
memcpy (data, buffer.get ()->data (), size);
17
- std::shared_ptr<ArrayBuffer> nativeBuffer = std::make_shared<NativeArrayBuffer>(data, size, false );
20
+ std::shared_ptr<ArrayBuffer> nativeBuffer =
21
+ std::make_shared<NativeArrayBuffer>(data, size, [=]() { delete[] data; });
18
22
19
23
return std::async (std::launch::async,
20
- [this , nativeBuffer, dOffset, dSize]() { return this ->randomFillSync (nativeBuffer, dOffset, dSize); });
24
+ [this , nativeBuffer, dOffset, dSize]() {
25
+ return this ->randomFillSync (nativeBuffer, dOffset, dSize);
26
+ });
21
27
};
22
28
23
- std::shared_ptr<ArrayBuffer> HybridRandom::randomFillSync (const std::shared_ptr<ArrayBuffer>& buffer, double dOffset, double dSize) {
29
+ std::shared_ptr<ArrayBuffer>
30
+ HybridRandom::randomFillSync (const std::shared_ptr<ArrayBuffer>& buffer,
31
+ double dOffset,
32
+ double dSize) {
24
33
size_t size = checkSize (dSize);
25
34
size_t offset = checkOffset (dSize, dOffset);
26
35
uint8_t * data = buffer.get ()->data ();
27
36
28
37
if (RAND_bytes (data + offset, (int )size) != 1 ) {
29
- throw std::runtime_error (" error calling RAND_bytes" + std::to_string (ERR_get_error ()));
38
+ throw std::runtime_error (" error calling RAND_bytes" +
39
+ std::to_string (ERR_get_error ()));
30
40
}
31
- return std::make_shared<NativeArrayBuffer>(data, size, false );
41
+ return std::make_shared<NativeArrayBuffer>(data, size, nullptr );
32
42
};
33
43
34
44
} // namespace margelo::crypto
0 commit comments