Remove references to asExternalTypedData (#13)
* asTypedList
* changelog
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d36f1a7..5e201b1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
# Changelog
+## 0.1.3-dev.3
+
+Replace use of deprecated `asExternalTypedData` with `asTypedList`.
+
## 0.1.3-dev.2
Incorporate struct API changes, drop type argument of structs.
diff --git a/lib/src/utf16.dart b/lib/src/utf16.dart
index cffdb99..5864120 100644
--- a/lib/src/utf16.dart
+++ b/lib/src/utf16.dart
@@ -24,8 +24,7 @@
static Pointer<Utf16> toUtf16(String s) {
final units = s.codeUnits;
final Pointer<Uint16> result = allocate<Uint16>(count: units.length + 1);
- final Uint16List nativeString =
- result.asExternalTypedData(count: units.length + 1);
+ final Uint16List nativeString = result.asTypedList(units.length + 1);
nativeString.setAll(0, units);
nativeString[units.length] = 0;
return result.cast();
diff --git a/lib/src/utf8.dart b/lib/src/utf8.dart
index 640da80..df8f1f2 100644
--- a/lib/src/utf8.dart
+++ b/lib/src/utf8.dart
@@ -19,13 +19,13 @@
/// native function signatures.
//
// TODO(https://github.com/dart-lang/ffi/issues/4): No need to use
-// 'asExternalTypedData' when Pointer operations are performant.
+// 'asTypedList' when Pointer operations are performant.
class Utf8 extends Struct {
/// Returns the length of a null-terminated string -- the number of (one-byte)
/// characters before the first null byte.
static int strlen(Pointer<Utf8> string) {
final Pointer<Uint8> array = string.cast<Uint8>();
- final Uint8List nativeString = array.asExternalTypedData(count: _maxSize);
+ final Uint8List nativeString = array.asTypedList(_maxSize);
return nativeString.indexWhere((char) => char == 0);
}
@@ -41,9 +41,7 @@
static String fromUtf8(Pointer<Utf8> string) {
final int length = strlen(string);
return utf8.decode(Uint8List.view(
- string.cast<Uint8>().asExternalTypedData(count: length).buffer,
- 0,
- length));
+ string.cast<Uint8>().asTypedList(length).buffer, 0, length));
}
/// Convert a [String] to a Utf8-encoded null-terminated C string.
@@ -56,8 +54,7 @@
static Pointer<Utf8> toUtf8(String string) {
final units = utf8.encode(string);
final Pointer<Uint8> result = allocate<Uint8>(count: units.length + 1);
- final Uint8List nativeString =
- result.asExternalTypedData(count: units.length + 1);
+ final Uint8List nativeString = result.asTypedList(units.length + 1);
nativeString.setAll(0, units);
nativeString[units.length] = 0;
return result.cast();
diff --git a/test/utf16_test.dart b/test/utf16_test.dart
index 99863e8..f55cb3b 100644
--- a/test/utf16_test.dart
+++ b/test/utf16_test.dart
@@ -12,8 +12,7 @@
test("toUtf16 ASCII", () {
final String start = "Hello World!\n";
final Pointer<Uint16> converted = Utf16.toUtf16(start).cast();
- final Uint16List end =
- converted.asExternalTypedData(count: start.codeUnits.length + 1);
+ final Uint16List end = converted.asTypedList(start.codeUnits.length + 1);
final matcher = equals(start.codeUnits.toList()..add(0));
expect(end, matcher);
free(converted);
@@ -23,8 +22,7 @@
final String start = "π";
final Pointer<Utf16> converted = Utf16.toUtf16(start).cast();
final int length = start.codeUnits.length;
- final Uint16List end =
- converted.cast<Uint16>().asExternalTypedData(count: length + 1);
+ final Uint16List end = converted.cast<Uint16>().asTypedList(length + 1);
final matcher = equals(start.codeUnits.toList()..add(0));
expect(end, matcher);
free(converted);
diff --git a/test/utf8_test.dart b/test/utf8_test.dart
index 5b92fce..8e9937f 100644
--- a/test/utf8_test.dart
+++ b/test/utf8_test.dart
@@ -10,7 +10,7 @@
Pointer<Uint8> _bytesFromList(List<int> ints) {
final Pointer<Uint8> ptr = allocate(count: ints.length);
- final Uint8List list = ptr.asExternalTypedData(count: ints.length);
+ final Uint8List list = ptr.asTypedList(ints.length);
list.setAll(0, ints);
return ptr;
}
@@ -19,8 +19,7 @@
test("toUtf8 ASCII", () {
final String start = "Hello World!\n";
final Pointer<Uint8> converted = Utf8.toUtf8(start).cast();
- final Uint8List end =
- converted.asExternalTypedData(count: start.length + 1);
+ final Uint8List end = converted.asTypedList(start.length + 1);
final matcher =
equals([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 10, 0]);
expect(end, matcher);
@@ -38,8 +37,7 @@
final String start = "ππΏπ¬";
final Pointer<Utf8> converted = Utf8.toUtf8(start).cast();
final int length = Utf8.strlen(converted);
- final Uint8List end =
- converted.cast<Uint8>().asExternalTypedData(count: length + 1);
+ final Uint8List end = converted.cast<Uint8>().asTypedList(length + 1);
final matcher =
equals([240, 159, 152, 142, 240, 159, 145, 191, 240, 159, 146, 172, 0]);
expect(end, matcher);
@@ -57,8 +55,7 @@
final String start = String.fromCharCodes([0xD800, 0x1000]);
final Pointer<Utf8> converted = Utf8.toUtf8(start).cast();
final int length = Utf8.strlen(converted);
- final Uint8List end =
- converted.cast<Uint8>().asExternalTypedData(count: length + 1);
+ final Uint8List end = converted.cast<Uint8>().asTypedList(length + 1);
expect(end, equals([237, 160, 128, 225, 128, 128, 0]));
free(converted);
});