Version 2.17.0-268.0.dev
Merge commit '0b49bb6e37bad199016f25d89b67e90d39d5985b' into 'dev'
diff --git a/runtime/bin/file.cc b/runtime/bin/file.cc
index d7eda14..92a3b65 100644
--- a/runtime/bin/file.cc
+++ b/runtime/bin/file.cc
@@ -203,7 +203,8 @@
uint8_t* buffer = NULL;
Dart_Handle external_array = IOBuffer::Allocate(length, &buffer);
if (Dart_IsNull(external_array)) {
- Dart_SetReturnValue(args, DartUtils::NewDartOSError());
+ OSError os_error(-1, "Failed to allocate buffer", OSError::kUnknown);
+ Dart_SetReturnValue(args, DartUtils::NewDartOSError(&os_error));
return;
}
int64_t bytes_read = file->Read(reinterpret_cast<void*>(buffer), length);
@@ -289,11 +290,13 @@
// Write all the data out into the file.
char* byte_buffer = reinterpret_cast<char*>(buffer);
bool success = file->WriteFully(byte_buffer + start, length);
+ OSError os_error; // capture error if any
// Release the direct pointer acquired above.
ThrowIfError(Dart_TypedDataReleaseData(buffer_obj));
+
if (!success) {
- Dart_SetReturnValue(args, DartUtils::NewDartOSError());
+ Dart_SetReturnValue(args, DartUtils::NewDartOSError(&os_error));
} else {
Dart_SetReturnValue(args, Dart_Null());
}
diff --git a/tools/VERSION b/tools/VERSION
index 98d02ab..96bb58e 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 17
PATCH 0
-PRERELEASE 267
+PRERELEASE 268
PRERELEASE_PATCH 0
\ No newline at end of file