Skip to content

Commit f861d36

Browse files
committed
fixup! remove ArrayBufferLike common ancestor
1 parent 02cc813 commit f861d36

File tree

5 files changed

+78
-67
lines changed

5 files changed

+78
-67
lines changed

doc/array_buffer.md

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# ArrayBuffer
22

3-
Class `Napi::ArrayBuffer` inherits from class [`Napi::ArrayBufferLike`][].
3+
Class `Napi::ArrayBuffer` inherits from class [`Napi::Object`][].
44

55
The `Napi::ArrayBuffer` class corresponds to the
66
[JavaScript `ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer)
@@ -128,6 +128,22 @@ Napi::ArrayBuffer::ArrayBuffer(napi_env env, napi_value value);
128128
- `[in] env`: The environment in which to create the `Napi::ArrayBuffer` instance.
129129
- `[in] value`: The `Napi::ArrayBuffer` reference to wrap.
130130
131+
### ByteLength
132+
133+
```cpp
134+
size_t Napi::ArrayBuffer::ByteLength() const;
135+
```
136+
137+
Returns the length of the wrapped data, in bytes.
138+
139+
### Data
140+
141+
```cpp
142+
void* Napi::ArrayBuffer::Data() const;
143+
```
144+
145+
Returns a pointer the wrapped data.
146+
131147
### Detach
132148

133149
```cpp
@@ -144,6 +160,6 @@ bool Napi::ArrayBuffer::IsDetached() const;
144160

145161
Returns `true` if this `ArrayBuffer` has been detached.
146162

147-
[`Napi::ArrayBufferLike`]: ./array_buffer_like.md
163+
[`Napi::Object`]: ./object.md
148164
[External Buffer]: ./external_buffer.md
149165
[Finalization]: ./finalization.md

doc/array_buffer_like.md

Lines changed: 0 additions & 27 deletions
This file was deleted.

doc/shared_array_buffer.md

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SharedArrayBuffer
22

3-
Class `Napi::SharedArrayBuffer` inherits from class [`Napi::ArrayBufferLike`][].
3+
Class `Napi::SharedArrayBuffer` inherits from class [`Napi::Object`][].
44

55
The `Napi::SharedArrayBuffer` class corresponds to the
66
[JavaScript `SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer)
@@ -46,4 +46,20 @@ Napi::SharedArrayBuffer::SharedArrayBuffer(napi_env env, napi_value value);
4646
instance.
4747
- `[in] value`: The `Napi::SharedArrayBuffer` reference to wrap.
4848
49-
[`Napi::ArrayBufferLike`]: ./array_buffer_like.md
49+
### ByteLength
50+
51+
```cpp
52+
size_t Napi::SharedArrayBuffer::ByteLength() const;
53+
```
54+
55+
Returns the length of the wrapped data, in bytes.
56+
57+
### Data
58+
59+
```cpp
60+
void* Napi::SharedArrayBuffer::Data() const;
61+
```
62+
63+
Returns a pointer the wrapped data.
64+
65+
[`Napi::Object`]: ./object.md

napi-inl.h

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2081,35 +2081,15 @@ inline uint32_t Array::Length() const {
20812081
return result;
20822082
}
20832083

2084-
inline ArrayBufferLike::ArrayBufferLike() : Object() {}
2085-
2086-
inline ArrayBufferLike::ArrayBufferLike(napi_env env, napi_value value)
2087-
: Object(env, value) {}
2088-
2089-
inline void* ArrayBufferLike::Data() {
2090-
void* data;
2091-
napi_status status = napi_get_arraybuffer_info(_env, _value, &data, nullptr);
2092-
NAPI_THROW_IF_FAILED(_env, status, nullptr);
2093-
return data;
2094-
}
2095-
2096-
inline size_t ArrayBufferLike::ByteLength() {
2097-
size_t length;
2098-
napi_status status =
2099-
napi_get_arraybuffer_info(_env, _value, nullptr, &length);
2100-
NAPI_THROW_IF_FAILED(_env, status, 0);
2101-
return length;
2102-
}
2103-
21042084
#ifdef NODE_API_EXPERIMENTAL_HAS_SHAREDARRAYBUFFER
21052085
////////////////////////////////////////////////////////////////////////////////
21062086
// SharedArrayBuffer class
21072087
////////////////////////////////////////////////////////////////////////////////
21082088

2109-
inline SharedArrayBuffer::SharedArrayBuffer() : ArrayBufferLike() {}
2089+
inline SharedArrayBuffer::SharedArrayBuffer() : Object() {}
21102090

21112091
inline SharedArrayBuffer::SharedArrayBuffer(napi_env env, napi_value value)
2112-
: ArrayBufferLike(env, value) {}
2092+
: Object(env, value) {}
21132093

21142094
inline void SharedArrayBuffer::CheckCast(napi_env env, napi_value value) {
21152095
NAPI_CHECK(value != nullptr, "SharedArrayBuffer::CheckCast", "empty value");
@@ -2133,6 +2113,21 @@ inline SharedArrayBuffer SharedArrayBuffer::New(napi_env env,
21332113

21342114
return SharedArrayBuffer(env, value);
21352115
}
2116+
2117+
inline void* SharedArrayBuffer::Data() {
2118+
void* data;
2119+
napi_status status = napi_get_arraybuffer_info(_env, _value, &data, nullptr);
2120+
NAPI_THROW_IF_FAILED(_env, status, nullptr);
2121+
return data;
2122+
}
2123+
2124+
inline size_t SharedArrayBuffer::ByteLength() {
2125+
size_t length;
2126+
napi_status status =
2127+
napi_get_arraybuffer_info(_env, _value, nullptr, &length);
2128+
NAPI_THROW_IF_FAILED(_env, status, 0);
2129+
return length;
2130+
}
21362131
#endif // NODE_API_EXPERIMENTAL_HAS_SHAREDARRAYBUFFER
21372132

21382133
////////////////////////////////////////////////////////////////////////////////
@@ -2221,10 +2216,25 @@ inline void ArrayBuffer::CheckCast(napi_env env, napi_value value) {
22212216
NAPI_CHECK(result, "ArrayBuffer::CheckCast", "value is not arraybuffer");
22222217
}
22232218

2224-
inline ArrayBuffer::ArrayBuffer() : ArrayBufferLike() {}
2219+
inline ArrayBuffer::ArrayBuffer() : Object() {}
22252220

22262221
inline ArrayBuffer::ArrayBuffer(napi_env env, napi_value value)
2227-
: ArrayBufferLike(env, value) {}
2222+
: Object(env, value) {}
2223+
2224+
inline void* ArrayBuffer::Data() {
2225+
void* data;
2226+
napi_status status = napi_get_arraybuffer_info(_env, _value, &data, nullptr);
2227+
NAPI_THROW_IF_FAILED(_env, status, nullptr);
2228+
return data;
2229+
}
2230+
2231+
inline size_t ArrayBuffer::ByteLength() {
2232+
size_t length;
2233+
napi_status status =
2234+
napi_get_arraybuffer_info(_env, _value, nullptr, &length);
2235+
NAPI_THROW_IF_FAILED(_env, status, 0);
2236+
return length;
2237+
}
22282238

22292239
#if NAPI_VERSION >= 7
22302240
inline bool ArrayBuffer::IsDetached() const {

napi.h

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1205,30 +1205,23 @@ class Object::iterator {
12051205
};
12061206
#endif // NODE_ADDON_API_CPP_EXCEPTIONS
12071207

1208-
class ArrayBufferLike : public Object {
1209-
public:
1210-
void* Data();
1211-
size_t ByteLength();
1212-
1213-
protected:
1214-
ArrayBufferLike();
1215-
ArrayBufferLike(napi_env env, napi_value value);
1216-
};
1217-
12181208
#ifdef NODE_API_EXPERIMENTAL_HAS_SHAREDARRAYBUFFER
1219-
class SharedArrayBuffer : public ArrayBufferLike {
1209+
class SharedArrayBuffer : public Object {
12201210
public:
12211211
SharedArrayBuffer();
12221212
SharedArrayBuffer(napi_env env, napi_value value);
12231213

12241214
static SharedArrayBuffer New(napi_env env, size_t byteLength);
12251215

12261216
static void CheckCast(napi_env env, napi_value value);
1217+
1218+
void* Data();
1219+
size_t ByteLength();
12271220
};
12281221
#endif
12291222

12301223
/// A JavaScript array buffer value.
1231-
class ArrayBuffer : public ArrayBufferLike {
1224+
class ArrayBuffer : public Object {
12321225
public:
12331226
/// Creates a new ArrayBuffer instance over a new automatically-allocated
12341227
/// buffer.
@@ -1289,6 +1282,9 @@ class ArrayBuffer : public ArrayBufferLike {
12891282
ArrayBuffer(napi_env env,
12901283
napi_value value); ///< Wraps a Node-API value primitive.
12911284

1285+
void* Data(); ///< Gets a pointer to the data buffer.
1286+
size_t ByteLength(); ///< Gets the length of the array buffer in bytes.
1287+
12921288
#if NAPI_VERSION >= 7
12931289
bool IsDetached() const;
12941290
void Detach();

0 commit comments

Comments
 (0)