pub unsafe extern "C" fn NewArrayBufferWithUserOwnedContents(
cx: *mut JSContext,
nbytes: usize,
contents: *mut c_void,
) -> *mut JSObject
Expand description
Create a new ArrayBuffer with the given non-null |contents|.
Ownership of |contents| remains with the caller: it isn’t transferred to the returned ArrayBuffer. Callers of this function must ensure that they perform these two steps, in this order, to properly relinquish ownership of |contents|:
- Call |JS::DetachArrayBuffer| on the buffer returned by this function. (|JS::DetachArrayBuffer| is generally fallible, but a call under these circumstances is guaranteed to succeed.)
- |contents| may be deallocated or discarded consistent with the manner in which it was allocated.
Do not simply allow the returned buffer to be garbage-collected before deallocating |contents|, because in general there is no way to know when an object is fully garbage-collected to the point where this would be safe.