From b496f4032cbb164d92dfbb79573d05c60286093b Mon Sep 17 00:00:00 2001 From: Tim Sneath Date: Thu, 4 Feb 2021 11:19:58 -0800 Subject: [PATCH 1/7] Update to ffi 0.3.0-nullsafety.1 --- .../path_provider_windows/CHANGELOG.md | 4 +++ .../example/windows/flutter/CMakeLists.txt | 1 + .../flutter/generated_plugin_registrant.cc | 4 ++- .../lib/src/path_provider_windows_real.dart | 34 +++++++++---------- .../path_provider_windows/pubspec.yaml | 10 +++--- 5 files changed, 30 insertions(+), 23 deletions(-) diff --git a/packages/path_provider/path_provider_windows/CHANGELOG.md b/packages/path_provider/path_provider_windows/CHANGELOG.md index 24304e36dc0c..6190c39457da 100644 --- a/packages/path_provider/path_provider_windows/CHANGELOG.md +++ b/packages/path_provider/path_provider_windows/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.1.0-nullsafety.2 + +* Bump ffi dependency to 0.3.0-nullsafety.1 + ## 0.1.0-nullsafety.1 * Bump win32 dependency to latest version. diff --git a/packages/path_provider/path_provider_windows/example/windows/flutter/CMakeLists.txt b/packages/path_provider/path_provider_windows/example/windows/flutter/CMakeLists.txt index c7a8c7607d81..744f08a9389b 100644 --- a/packages/path_provider/path_provider_windows/example/windows/flutter/CMakeLists.txt +++ b/packages/path_provider/path_provider_windows/example/windows/flutter/CMakeLists.txt @@ -91,6 +91,7 @@ add_custom_command( ${FLUTTER_TOOL_ENVIRONMENT} "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" windows-x64 $ + VERBATIM ) add_custom_target(flutter_assemble DEPENDS "${FLUTTER_LIBRARY}" diff --git a/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugin_registrant.cc b/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugin_registrant.cc index a6177ab0b72b..4bfa0f3a3a75 100644 --- a/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugin_registrant.cc +++ b/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugin_registrant.cc @@ -4,4 +4,6 @@ #include "generated_plugin_registrant.h" -void RegisterPlugins(flutter::PluginRegistry* registry) {} + +void RegisterPlugins(flutter::PluginRegistry* registry) { +} diff --git a/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart b/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart index c104343f2502..c88e10a0f9b3 100644 --- a/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart +++ b/packages/path_provider/path_provider_windows/lib/src/path_provider_windows_real.dart @@ -28,17 +28,17 @@ class VersionInfoQuerier { } const kEnUsLanguageCode = '040904e4'; final keyPath = TEXT('\\StringFileInfo\\$kEnUsLanguageCode\\$key'); - final length = allocate(); - final valueAddress = allocate>(); + final length = calloc(); + final valueAddress = calloc>(); try { if (VerQueryValue(versionInfo, keyPath, valueAddress, length) == 0) { return null; } return valueAddress.value.unpackString(length.value); } finally { - free(keyPath); - free(length); - free(valueAddress); + calloc.free(keyPath); + calloc.free(length); + calloc.free(valueAddress); } } } @@ -54,7 +54,7 @@ class PathProviderWindows extends PathProviderPlatform { /// This is typically the same as the TMP environment variable. @override Future getTemporaryPath() async { - final buffer = allocate(count: MAX_PATH + 1).cast(); + final buffer = calloc(MAX_PATH + 1).cast(); String path; try { @@ -82,7 +82,7 @@ class PathProviderWindows extends PathProviderPlatform { return Future.value(path); } finally { - free(buffer); + calloc.free(buffer); } } @@ -115,7 +115,7 @@ class PathProviderWindows extends PathProviderPlatform { /// folderID is a GUID that represents a specific known folder ID, drawn from /// [WindowsKnownFolder]. Future getPath(String folderID) { - final pathPtrPtr = allocate>(); + final pathPtrPtr = calloc>(); final Pointer knownFolderID = calloc()..ref.setGUID(folderID); try { @@ -135,8 +135,8 @@ class PathProviderWindows extends PathProviderPlatform { final path = pathPtrPtr.value.unpackString(MAX_PATH); return Future.value(path); } finally { - free(pathPtrPtr); - free(knownFolderID); + calloc.free(pathPtrPtr); + calloc.free(knownFolderID); } } @@ -155,8 +155,8 @@ class PathProviderWindows extends PathProviderPlatform { String? productName; final Pointer moduleNameBuffer = - allocate(count: MAX_PATH + 1).cast(); - final Pointer unused = allocate(); + calloc(MAX_PATH + 1).cast(); + final Pointer unused = calloc(); Pointer? infoBuffer; try { // Get the module name. @@ -169,10 +169,10 @@ class PathProviderWindows extends PathProviderPlatform { // From that, load the VERSIONINFO resource int infoSize = GetFileVersionInfoSize(moduleNameBuffer, unused); if (infoSize != 0) { - infoBuffer = allocate(count: infoSize); + infoBuffer = calloc(infoSize); if (GetFileVersionInfo(moduleNameBuffer, 0, infoSize, infoBuffer) == 0) { - free(infoBuffer); + calloc.free(infoBuffer); infoBuffer = null; } } @@ -191,10 +191,10 @@ class PathProviderWindows extends PathProviderPlatform { ? path.join(companyName, productName) : productName; } finally { - free(moduleNameBuffer); - free(unused); + calloc.free(moduleNameBuffer); + calloc.free(unused); if (infoBuffer != null) { - free(infoBuffer); + calloc.free(infoBuffer); } } } diff --git a/packages/path_provider/path_provider_windows/pubspec.yaml b/packages/path_provider/path_provider_windows/pubspec.yaml index 578000682e63..374179b67d2e 100644 --- a/packages/path_provider/path_provider_windows/pubspec.yaml +++ b/packages/path_provider/path_provider_windows/pubspec.yaml @@ -1,7 +1,7 @@ name: path_provider_windows description: Windows implementation of the path_provider plugin homepage: https://github.com/flutter/plugins/tree/master/packages/path_provider/path_provider_windows -version: 0.1.0-nullsafety.1 +version: 0.1.0-nullsafety.2 flutter: plugin: @@ -16,8 +16,8 @@ dependencies: path: ^1.8.0-nullsafety.3 flutter: sdk: flutter - ffi: ^0.2.0-nullsafety.1 - win32: ^2.0.0-nullsafety.9 + ffi: '>=0.3.0-nullsafety.1 <2.0.0' + win32: ^2.0.0-nullsafety.10 dev_dependencies: flutter_test: @@ -25,5 +25,5 @@ dev_dependencies: pedantic: ^1.10.0-nullsafety.3 environment: - sdk: '>=2.12.0-0 <3.0.0' - flutter: ">=1.12.13+hotfix.4" + sdk: '>=2.12.0-259.8.beta <3.0.0' + From 859b356bd0bc8971b041127e156c6a16be52d780 Mon Sep 17 00:00:00 2001 From: Tim Sneath Date: Thu, 4 Feb 2021 12:20:07 -0800 Subject: [PATCH 2/7] Drop explicit dependency on FFI --- .../example/windows/flutter/generated_plugin_registrant.cc | 4 +++- .../shared_preferences_windows/pubspec.yaml | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/shared_preferences/shared_preferences_windows/example/windows/flutter/generated_plugin_registrant.cc b/packages/shared_preferences/shared_preferences_windows/example/windows/flutter/generated_plugin_registrant.cc index a6177ab0b72b..4bfa0f3a3a75 100644 --- a/packages/shared_preferences/shared_preferences_windows/example/windows/flutter/generated_plugin_registrant.cc +++ b/packages/shared_preferences/shared_preferences_windows/example/windows/flutter/generated_plugin_registrant.cc @@ -4,4 +4,6 @@ #include "generated_plugin_registrant.h" -void RegisterPlugins(flutter::PluginRegistry* registry) {} + +void RegisterPlugins(flutter::PluginRegistry* registry) { +} diff --git a/packages/shared_preferences/shared_preferences_windows/pubspec.yaml b/packages/shared_preferences/shared_preferences_windows/pubspec.yaml index 2970b3ff053e..2158456aaae6 100644 --- a/packages/shared_preferences/shared_preferences_windows/pubspec.yaml +++ b/packages/shared_preferences/shared_preferences_windows/pubspec.yaml @@ -18,7 +18,6 @@ dependencies: shared_preferences_platform_interface: ^1.0.0 flutter: sdk: flutter - ffi: ">=0.1.3 < 0.3.0" file: ">=5.1.0 <7.0.0" meta: ^1.1.7 path: ^1.6.4 From 0d3b79d4a6381b6547055e8e78aaecd29e4b4a62 Mon Sep 17 00:00:00 2001 From: Tim Sneath Date: Thu, 4 Feb 2021 13:59:48 -0800 Subject: [PATCH 3/7] Fix formatting nit --- .../example/windows/flutter/generated_plugin_registrant.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugin_registrant.cc b/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugin_registrant.cc index 4bfa0f3a3a75..ae60455c5c36 100644 --- a/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugin_registrant.cc +++ b/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugin_registrant.cc @@ -5,5 +5,4 @@ #include "generated_plugin_registrant.h" -void RegisterPlugins(flutter::PluginRegistry* registry) { -} +void RegisterPlugins(flutter::PluginRegistry* registry) {} From 838f5cb77967010ca8f53011c43fff1cc9eb7928 Mon Sep 17 00:00:00 2001 From: Tim Sneath Date: Thu, 4 Feb 2021 14:02:55 -0800 Subject: [PATCH 4/7] Formatting --- .../example/windows/flutter/generated_plugin_registrant.cc | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/shared_preferences/shared_preferences_windows/example/windows/flutter/generated_plugin_registrant.cc b/packages/shared_preferences/shared_preferences_windows/example/windows/flutter/generated_plugin_registrant.cc index 4bfa0f3a3a75..a6177ab0b72b 100644 --- a/packages/shared_preferences/shared_preferences_windows/example/windows/flutter/generated_plugin_registrant.cc +++ b/packages/shared_preferences/shared_preferences_windows/example/windows/flutter/generated_plugin_registrant.cc @@ -4,6 +4,4 @@ #include "generated_plugin_registrant.h" - -void RegisterPlugins(flutter::PluginRegistry* registry) { -} +void RegisterPlugins(flutter::PluginRegistry* registry) {} From ac2148c912852ebc035d8bbda54b15a71ba2b07a Mon Sep 17 00:00:00 2001 From: Tim Sneath Date: Thu, 4 Feb 2021 14:03:50 -0800 Subject: [PATCH 5/7] Formatting --- .../example/windows/flutter/generated_plugin_registrant.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugin_registrant.cc b/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugin_registrant.cc index ae60455c5c36..a6177ab0b72b 100644 --- a/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugin_registrant.cc +++ b/packages/path_provider/path_provider_windows/example/windows/flutter/generated_plugin_registrant.cc @@ -4,5 +4,4 @@ #include "generated_plugin_registrant.h" - void RegisterPlugins(flutter::PluginRegistry* registry) {} From 6691fb2dd39a595a40dda46099dc3eb7ed3d7319 Mon Sep 17 00:00:00 2001 From: Tim Sneath Date: Thu, 4 Feb 2021 14:54:48 -0800 Subject: [PATCH 6/7] Add back explicit minver --- packages/path_provider/path_provider_windows/pubspec.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/path_provider/path_provider_windows/pubspec.yaml b/packages/path_provider/path_provider_windows/pubspec.yaml index 374179b67d2e..aa11ea01ae3a 100644 --- a/packages/path_provider/path_provider_windows/pubspec.yaml +++ b/packages/path_provider/path_provider_windows/pubspec.yaml @@ -26,4 +26,5 @@ dev_dependencies: environment: sdk: '>=2.12.0-259.8.beta <3.0.0' + flutter: ">=1.12.13+hotfix.4 <2.0.0" From 78586ce5f26f0e785f475730fe7c9c6615fdba87 Mon Sep 17 00:00:00 2001 From: Tim Sneath Date: Thu, 4 Feb 2021 15:14:10 -0800 Subject: [PATCH 7/7] Remove upper bound for flutter --- packages/path_provider/path_provider_windows/pubspec.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/path_provider/path_provider_windows/pubspec.yaml b/packages/path_provider/path_provider_windows/pubspec.yaml index aa11ea01ae3a..922594a9bd2d 100644 --- a/packages/path_provider/path_provider_windows/pubspec.yaml +++ b/packages/path_provider/path_provider_windows/pubspec.yaml @@ -26,5 +26,5 @@ dev_dependencies: environment: sdk: '>=2.12.0-259.8.beta <3.0.0' - flutter: ">=1.12.13+hotfix.4 <2.0.0" + flutter: ">=1.12.13+hotfix.4"