Author: [EMAIL PROTECTED]
Date: Fri Sep 19 05:35:15 2008
New Revision: 350

Modified:
    branches/bleeding_edge/src/disasm-arm.cc
    branches/bleeding_edge/src/simulator-arm.cc

Log:
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

Modified: branches/bleeding_edge/src/disasm-arm.cc
==============================================================================
--- branches/bleeding_edge/src/disasm-arm.cc    (original)
+++ branches/bleeding_edge/src/disasm-arm.cc    Fri Sep 19 05:35:15 2008
@@ -855,13 +855,9 @@


  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();
  }



Modified: branches/bleeding_edge/src/simulator-arm.cc
==============================================================================
--- branches/bleeding_edge/src/simulator-arm.cc (original)
+++ branches/bleeding_edge/src/simulator-arm.cc Fri Sep 19 05:35:15 2008
@@ -44,6 +44,15 @@
  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 @@
      }
      return true;
    } else {
-    return sscanf(desc, "%i", value) == 1;  // NOLINT
+    return SScanF(desc, "%i", value) == 1;
    }
    return false;
  }
@@ -215,7 +224,7 @@
      } 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",

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to