toRaw method
Implementation
Pointer toRaw([int extraLength = 0, bool isCustomEvent = false]) {
Pointer<RawEvent> event = malloc.allocate<RawEvent>(sizeOf<RawEvent>());
EventTarget? target = this.target;
EventTarget? currentTarget = this.currentTarget;
List<int> methods = [
stringToNativeString(type).address,
bubbles ? 1 : 0,
cancelable ? 1 : 0,
composed ? 1 : 0,
timeStamp,
defaultPrevented ? 1 : 0,
(target != null && target.pointer != null) ? target.pointer!.address : nullptr.address,
(currentTarget != null && currentTarget.pointer != null) ? currentTarget.pointer!.address : nullptr.address,
sharedJSProps.address, // EventProps* props
propLen, // int64_t props_len
allocateLen // int64_t alloc_size;
];
// Allocate extra bytes to store subclass's members.
int nativeStructSize = methods.length + extraLength;
final Pointer<Uint64> bytes = malloc.allocate<Uint64>(nativeStructSize * sizeOf<Uint64>());
bytes.asTypedList(methods.length).setAll(0, methods);
event.ref.bytes = bytes;
event.ref.length = methods.length;
event.ref.isCustomEvent = isCustomEvent ? 1 : 0;
return event.cast<Pointer>();
}