| Index: runtime/bin/file_linux.cc
|
| diff --git a/runtime/bin/file_linux.cc b/runtime/bin/file_linux.cc
|
| index d4dbd4715d654e803811c50fec8dcd752f0abd47..7b4476869c7d26751c78be700e617789c15f6cf9 100644
|
| --- a/runtime/bin/file_linux.cc
|
| +++ b/runtime/bin/file_linux.cc
|
| @@ -120,6 +120,26 @@ int64_t File::Write(const void* buffer, int64_t num_bytes) {
|
| }
|
|
|
|
|
| +bool File::VPrint(const char* format, va_list args) {
|
| + // Measure.
|
| + va_list measure_args;
|
| + va_copy(measure_args, args);
|
| + intptr_t len = vsnprintf(NULL, 0, format, measure_args);
|
| + va_end(measure_args);
|
| +
|
| + char* buffer = reinterpret_cast<char*>(malloc(len + 1));
|
| +
|
| + // Print.
|
| + va_list print_args;
|
| + va_copy(print_args, args);
|
| + vsnprintf(buffer, len + 1, format, print_args);
|
| + va_end(print_args);
|
| +
|
| + bool result = WriteFully(buffer, len);
|
| + free(buffer);
|
| + return result;
|
| +}
|
| +
|
| int64_t File::Position() {
|
| ASSERT(handle_->fd() >= 0);
|
| return NO_RETRY_EXPECTED(lseek64(handle_->fd(), 0, SEEK_CUR));
|
|
|