writeMemberRef method

MemberRefIndex writeMemberRef({
  1. required MemberRefParent parent,
  2. required String name,
  3. required MemberRefSignature signature,
})

Writes a MemberRef row, returning the corresponding index.

If a matching entry already exists, returns the existing index.

Implementation

MemberRefIndex writeMemberRef({
  required MemberRefParent parent,
  required String name,
  required MemberRefSignature signature,
}) {
  final memberRef = MemberRef(
    parent: parent,
    name: _stringHeap.insert(name),
    signature: _writeMemberRefSig(signature),
  );

  return _memberRefs.putIfAbsent(memberRef, () {
    final table = _tableStream[MetadataTableId.memberRef];
    final index = MemberRefIndex(table.length);
    table.add(memberRef);
    return index;
  });
}