Commit 354deb6f authored by sgjesse@chromium.org's avatar sgjesse@chromium.org

Made the ARM port with simulator build and run on Windows.

The reason for the "ugly" definition of SScanF is that the Windows CRT does not have a vsscanf function making it difficult to add OS::SSprintF to platform.h.
Review URL: http://codereview.chromium.org/2988

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@350 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent dc91b5f3
......@@ -855,13 +855,9 @@ static const char* reg_names[16] = {
const char* NameConverter::NameOfAddress(byte* addr) const {
static char tmp_buffer[32];
#ifdef WIN32
_snprintf(tmp_buffer, sizeof tmp_buffer, "%p", addr);
#else
snprintf(tmp_buffer, sizeof tmp_buffer, "%p", addr);
#endif
return tmp_buffer;
static v8::internal::EmbeddedVector<char, 32> tmp_buffer;
v8::internal::OS::SNPrintF(tmp_buffer, "%p", addr);
return tmp_buffer.start();
}
......
......@@ -44,6 +44,15 @@ using ::v8::internal::OS;
using ::v8::internal::ReadLine;
using ::v8::internal::DeleteArray;
// This macro provides a platform independent use of sscanf. The reason for
// SScanF not beeing implemented in a platform independent was through
// ::v8::internal::OS in the same way as SNPrintF is that the Windows C Run-Time
// Library does not provide vsscanf.
#ifdef WIN32
#define SScanF sscanf_s
#else
#define SScanF sscanf // NOLINT
#endif
// The Debugger class is used by the simulator while debugging simulated ARM
// code.
......@@ -130,7 +139,7 @@ bool Debugger::GetValue(char* desc, int32_t* value) {
}
return true;
} else {
return sscanf(desc, "%i", value) == 1; // NOLINT
return SScanF(desc, "%i", value) == 1;
}
return false;
}
......@@ -215,7 +224,7 @@ void Debugger::Debug() {
} else {
// Use sscanf to parse the individual parts of the command line. At the
// moment no command expects more than two parameters.
int args = sscanf(line, // NOLINT
int args = SScanF(line,
"%" XSTR(COMMAND_SIZE) "s "
"%" XSTR(ARG_SIZE) "s "
"%" XSTR(ARG_SIZE) "s",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment