writeWASIComponentMemoryStringRecord function

void writeWASIComponentMemoryStringRecord(
  1. Memory memory,
  2. int pointer,
  3. WASIComponentMemoryString result
)

Writes a canonical (ptr, len) string record into memory.

Implementation

void writeWASIComponentMemoryStringRecord(
  wasm.Memory memory,
  int pointer,
  WASIComponentMemoryString result,
) {
  RangeError.checkNotNegative(pointer, 'pointer');
  _checkAligned(pointer, _memoryStringRecordAlignment, 'pointer');
  _checkU32(result.pointer, 'pointer value');
  _checkU32(result.canonicalLength, 'length value');
  final bytes = Uint8List.view(memory.buffer);
  _checkMemoryRange(
    bytes,
    pointer,
    _memoryStringRecordByteLength,
    'pointer + 8',
  );
  final data = ByteData.view(memory.buffer);
  data.setUint32(pointer, result.pointer, Endian.little);
  data.setUint32(pointer + 4, result.canonicalLength, Endian.little);
}