adb: win32: fix Unicode console output

commandline.cpp includes commandline.h which defines
StandardStreamsCallbackInterface which calls fwrite(). In the
compilation unit for commandline.cpp, fwrite is getting remapped to
adb_fwrite (good), but the compilation unit for bugreport.cpp includes
sysdeps.h pretty late, which prevents fwrite from getting remapped to
adb_fwrite.

Apparently when linking, the version of StandardStreamsCallbackInterface
that gets used is the one from bugreport.cpp's compilation unit, which
doesn't call adb_fwrite().

And it's necessary to call adb_fwrite() to get Unicode console output on
Windows.

The fix is to #include "sysdeps.h" earlier in bugreport.cpp. I searched
the other object files for other unremapped calls to printf/fwrite/etc.
and didn't find any.

Bug: https://issuetracker.google.com/issues/111972753
Test: mma, manual test on Windows 10 x64

Change-Id: I322dff75a878397f5e10227e746e77b0024129d0
Signed-off-by: Spencer Low <CompareAndSwap@gmail.com>
This commit is contained in:
Spencer Low 2018-07-30 19:53:23 -07:00
parent d0d7d0a6b9
commit 771ba0c057

View file

@ -16,6 +16,8 @@
#define TRACE_TAG ADB
#include "sysdeps.h"
#include "bugreport.h"
#include <string>
@ -24,8 +26,6 @@
#include <android-base/file.h>
#include <android-base/strings.h>
#include "sysdeps.h"
#include "adb_utils.h"
#include "client/file_sync_client.h"