c2e9ceeb6b
* Switch to `std::unique_ptr<wchar_t[]>` to represent a dynamically strings instead of wrappers like `StringRAII` and `Utf8ToWideScope`; * Avoid back and forth conversion between UTF8 and UTF16: convert to UTF16 first then work on that. This also simplifies code - previously it tried to work with strings allocated in different ways uniformly, which is actually unnecessary if resulting string needs to be converted to UTF16 (and allocated with `malloc`) anyway; * Fix a bug in `File::CreateLink`: it was handling relative links with long paths incorrectly. Change file_long_path_test to cover this case and make it run on non-Windows systems as well to ensure that all behavior that can match actually matches. TEST=ci Change-Id: I1279aff1d2cdace5e2ce8633c2f7ea69a34fe41a Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/356680 Commit-Queue: Slava Egorov <vegorov@google.com> Reviewed-by: Alexander Aprelev <aam@google.com>