Fix MSVC build (including on 2015), drop some workarounds for MSVC older than 2013.

The Windows client gyp files were missing proc_maps_linux.cc for the
unittest build. Adding that revealed some build errors due to it
unconditionally including <inttypes.h>. Removing the workarounds in
breakpad_types.h (and a few other places) made that build, which means
that Visual C++ 2013 is now our minimum supported version of MSVC.

Additionally I tried building with VC++ 2015 and fixed a few warnings
(which were failing the build because we have /WX enabled) to ensure
that that builds as well.

BUG=https://code.google.com/p/google-breakpad/issues/detail?id=669
R=mark@chromium.org

Review URL: https://codereview.chromium.org/1353893002 .
This commit is contained in:
Ted Mielczarek
2015-10-06 08:03:57 -04:00
parent f948d8d623
commit dbf56c53a0
7 changed files with 15 additions and 39 deletions

View File

@@ -38,9 +38,9 @@
#ifdef _WIN32
#include <io.h>
#define PRIx64 "llx"
#define PRIx32 "lx"
#if defined(_MSC_VER) && _MSC_VER < 1900
#define snprintf _snprintf
#endif
#else // _WIN32
#include <unistd.h>
#endif // _WIN32

View File

@@ -44,9 +44,9 @@
#ifdef _WIN32
#include <io.h>
#define PRIx64 "llx"
#define PRIx32 "lx"
#if defined(_MSC_VER) && _MSC_VER < 1900
#define snprintf _snprintf
#endif
#else // _WIN32
#include <unistd.h>
#endif // _WIN32

View File

@@ -34,16 +34,16 @@ bool ParseProcMaps(const std::string& input,
// Split the string by newlines.
std::vector<std::string> lines;
std::string line = "";
std::string l = "";
for (size_t i = 0; i < input.size(); i++) {
if (input[i] != '\n' && input[i] != '\r') {
line.push_back(input[i]);
} else if (line.size() > 0) {
lines.push_back(line);
line.clear();
l.push_back(input[i]);
} else if (l.size() > 0) {
lines.push_back(l);
l.clear();
}
}
if (line.size() > 0) {
if (l.size() > 0) {
BPLOG(ERROR) << "Input doesn't end in newline";
return false;
}