Fixed build problem on mac, lint issues and a test failure on win32.
authorchristian.plesner.hansen@gmail.com <christian.plesner.hansen@gmail.com@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 11 Sep 2008 15:03:22 +0000 (15:03 +0000)
committerchristian.plesner.hansen@gmail.com <christian.plesner.hansen@gmail.com@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Thu, 11 Sep 2008 15:03:22 +0000 (15:03 +0000)
Review URL: http://codereview.chromium.org/2601

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/platform-macos.cc
src/platform-win32.cc
src/utils.h

index 757312533580404e298420d4a63c3fe5cc0496f3..dc2e912da1b201d7e15dcfdcbb29dbc10fdb88f5 100644 (file)
@@ -132,6 +132,11 @@ double OS::LocalTimeOffset() {
 }
 
 
+FILE* OS::FOpen(const char* path, const char* mode) {
+  return fopen(path, mode);
+}
+
+
 void OS::Print(const char* format, ...) {
   va_list args;
   va_start(args, format);
@@ -158,19 +163,21 @@ void OS::VPrintError(const char* format, va_list args) {
 }
 
 
-int OS::SNPrintF(char* str, size_t size, const char* format, ...) {
+int OS::SNPrintF(Vector<char> str, const char* format, ...) {
   va_list args;
   va_start(args, format);
-  int result = VSNPrintF(str, size, format, args);
+  int result = VSNPrintF(str, format, args);
   va_end(args);
   return result;
 }
 
 
-int OS::VSNPrintF(char* str, size_t size, const char* format, va_list args) {
-  int n = vsnprintf(str, size, format, args);  // forward to Mac OS X.
-  if (n < 0 || static_cast<size_t>(n) >= size) {
-    str[size - 1] = '\0';
+int OS::VSNPrintF(Vector<char> str,
+                  const char* format,
+                  va_list args) {
+  int n = vsnprintf(str.start(), str.length(), format, args);
+  if (n < 0 || n >= str.length()) {
+    str[str.length() - 1] = '\0';
     return -1;
   } else {
     return n;
@@ -178,6 +185,21 @@ int OS::VSNPrintF(char* str, size_t size, const char* format, va_list args) {
 }
 
 
+void OS::StrNCpy(Vector<char> dest, const char* src, size_t n) {
+  strncpy(dest.start(), src, n);
+}
+
+
+void OS::WcsCpy(Vector<wchar_t> dest, const wchar_t* src) {
+  wcscpy(dest.start(), src);
+}
+
+
+char *OS::StrDup(const char* str) {
+  return strdup(str);
+}
+
+
 // We keep the lowest and highest addresses mapped as a quick way of
 // determining that pointers are outside the heap (used mostly in assertions
 // and verification).  The estimate is conservative, ie, not all addresses in
@@ -299,7 +321,10 @@ int OS::StackWalk(StackFrame* frames, int frames_size) {
     frames[i].address = addresses[i];
     // Format a text representation of the frame based on the information
     // available.
-    SNPrintF(frames[i].text, kStackWalkMaxTextLen, "%s", symbols[i]);
+    SNPrintF(MutableCStrVector(frames[i].text, 
+                               kStackWalkMaxTextLen),
+             "%s",
+             symbols[i]);
     // Make sure line termination is in place.
     frames[i].text[kStackWalkMaxTextLen - 1] = '\0';
   }
index d0d044fd6e3852186b521915ba501a900e5504b0..747f0a467f3cbaaa5eb8ef5a3e0c30756d216257 100644 (file)
@@ -668,7 +668,7 @@ int OS::SNPrintF(Vector<char> str, const char* format, ...) {
 
 
 int OS::VSNPrintF(Vector<char> str, const char* format, va_list args) {
-  int n = _vsnprintf_s(str.start(), str.length(), str.length(), format, args);
+  int n = _vsnprintf_s(str.start(), str.length(), _TRUNCATE, format, args);
   // Make sure to zero-terminate the string if the output was
   // truncated or if there was an error.
   if (n < 0 || n >= str.length()) {
@@ -682,13 +682,15 @@ int OS::VSNPrintF(Vector<char> str, const char* format, va_list args) {
 
 void OS::StrNCpy(Vector<char> dest, const char* src, size_t n) {
   int result = strncpy_s(dest.start(), dest.length(), src, n);
-  USE(result); ASSERT(result == 0);
+  USE(result);
+  ASSERT(result == 0);
 }
 
 
 void OS::WcsCpy(Vector<wchar_t> dest, const wchar_t* src) {
   int result = wcscpy_s(dest.start(), dest.length(), src);
-  USE(result); ASSERT(result == 0);
+  USE(result);
+  ASSERT(result == 0);
 }
 
 
index 38bbd16416fa804de97acb237c7cdedd2294839c..1f385257a34429412e6b872a9a26328763d36a52 100644 (file)
@@ -328,12 +328,12 @@ class Vector {
 };
 
 
-template <typename T, int size>
+template <typename T, int kSize>
 class EmbeddedVector : public Vector<T> {
  public:
-  EmbeddedVector() : Vector<T>(buffer_, size) { }
+  EmbeddedVector() : Vector<T>(buffer_, kSize) { }
  private:
-  T buffer_[size];
+  T buffer_[kSize];
 };