Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

Commit ff6bb71

Browse files
Update to win32 nullsafety.8
1 parent 8425702 commit ff6bb71

File tree

2 files changed

+8
-12
lines changed

2 files changed

+8
-12
lines changed

packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,12 @@ class VersionInfoQuerier {
2929
const kEnUsLanguageCode = '040904e4';
3030
final keyPath = TEXT('\\StringFileInfo\\$kEnUsLanguageCode\\$key');
3131
final length = allocate<Uint32>();
32-
final valueAddress = allocate<IntPtr>();
32+
final valueAddress = allocate<Pointer<Utf16>>();
3333
try {
3434
if (VerQueryValue(versionInfo, keyPath, valueAddress, length) == 0) {
3535
return null;
3636
}
37-
return Pointer<Utf16>.fromAddress(valueAddress.value)
38-
.unpackString(length.value);
37+
return valueAddress.value.unpackString(length.value);
3938
} finally {
4039
free(keyPath);
4140
free(length);
@@ -116,14 +115,12 @@ class PathProviderWindows extends PathProviderPlatform {
116115
/// folderID is a GUID that represents a specific known folder ID, drawn from
117116
/// [WindowsKnownFolder].
118117
Future<String> getPath(String folderID) {
119-
final pathPtrPtr = allocate<IntPtr>();
120-
late Pointer<Utf16> pathPtr;
118+
final pathPtrPtr = allocate<Pointer<Utf16>>();
119+
final Pointer<GUID> knownFolderID = calloc<GUID>()..setGUID(folderID);;
121120

122121
try {
123-
GUID knownFolderID = GUID.fromString(folderID);
124-
125122
final hr = SHGetKnownFolderPath(
126-
knownFolderID.addressOf, // ignore: deprecated_member_use
123+
knownFolderID,
127124
KF_FLAG_DEFAULT,
128125
NULL,
129126
pathPtrPtr,
@@ -135,12 +132,11 @@ class PathProviderWindows extends PathProviderPlatform {
135132
}
136133
}
137134

138-
pathPtr = Pointer<Utf16>.fromAddress(pathPtrPtr.value);
139-
final path = pathPtr.unpackString(MAX_PATH);
135+
final path = pathPtrPtr.value.unpackString(MAX_PATH);
140136
return Future.value(path);
141137
} finally {
142-
CoTaskMemFree(pathPtr.cast());
143138
free(pathPtrPtr);
139+
free(knownFolderID);
144140
}
145141
}
146142

packages/path_provider/path_provider_windows/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ dependencies:
1717
flutter:
1818
sdk: flutter
1919
ffi: ^0.2.0-nullsafety.1
20-
win32: 2.0.0-nullsafety.7
20+
win32: ^2.0.0-nullsafety.8
2121

2222
dev_dependencies:
2323
flutter_test:

0 commit comments

Comments
 (0)