New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dart: Return dart:typed_data equivalent where possible #8289
base: master
Are you sure you want to change the base?
Conversation
* Uint8List is a subtype of List<int>, so the API is functionally unchanged * Remove now unused _FbUint8List class * Int8ListReader was erroneously using the _FbUint8List class, use the correct _FbInt8List class * Remove unnecessary cast from _writeUTFString to silence lint warning
|
I'm not opposed to that, but I'd like to see some insight from one of the Dart maintainers to see if this aligns with their view for the Dart side. Ideally, we could expand the same to |
Ready for review. I tested using @tompark's example code, with the latest version of flatbuffers on pub.dev as well as this fork, and this fork prints the expected cc @vaind I'd like some input on if this should extend to Int8List as well and if it's preferable to add another internal built-in _asInt8List like we have for _asUint8List or if it should just be inlined (the VM inlines it anyway). |
I can provide a test repo if you'd like as well, although setting up Tom's example code also takes <10 minutes, assuming you have Flutter and Python already installed. |
…respectively * Remove now unused _FbUint16List and _FbInt8List builtin classes * Add missing test for Int8List * Small comment cleanup * Silence lint warning about unused variable
I applied the same changes to Int8List and Uint16List, added a missing test for Int8List and applied type checking to each test. NOTE: I changed the hex values in the expect() to match their correct decimal value to better differentiate between the Int8List/Uint8List tests |
Stems from discussion in #8183. This should allow users to be able to access a Uint8List directly without copying over from a list, thus actually offering zero-copy access (for this class, at least) in both the lazy path and the non-lazy path. This is pretty important for signal processing and image processing where we want to avoid any unnecessary list copies.