unpackStringArray method

List<String> unpackStringArray(
  1. int maxLength
)

Implementation

List<String> unpackStringArray(int maxLength) {
  final results = <String>[];
  final buf = StringBuffer();
  final ptr = Pointer<Uint16>.fromAddress(address);

  for (var v = 0; v < maxLength; v++) {
    final charCode = (ptr + v).value;
    if (charCode != 0) {
      buf.writeCharCode(charCode);
    } else {
      results.add(buf.toString());
      if ((ptr + (v + 1)).value == 0) {
        break;
      } else {
        buf.clear();
      }
    }
  }
  // If array don't terminate before maxLength is are reached,
  // just return the complete results thus far
  return results;
}