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.elementAt(v).value;
    if (charCode != 0) {
      buf.writeCharCode(charCode);
    } else {
      results.add(buf.toString());
      if (ptr.elementAt(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;
}