Fix a build for Win64 with VS2008.
authorantonm@chromium.org <antonm@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 22 Sep 2010 13:57:00 +0000 (13:57 +0000)
committerantonm@chromium.org <antonm@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 22 Sep 2010 13:57:00 +0000 (13:57 +0000)
It complaints of type conversions.

Review URL: http://codereview.chromium.org/3396015

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

test/cctest/test-log-stack-tracer.cc

index b0cf93d..9162ffd 100644 (file)
@@ -241,11 +241,12 @@ static v8::Handle<Value> construct_call(const v8::Arguments& args) {
   CHECK(calling_frame->is_java_script());
 
 #if defined(V8_HOST_ARCH_32_BIT)
-  int32_t low_bits = reinterpret_cast<intptr_t>(calling_frame->fp());
+  int32_t low_bits = reinterpret_cast<int32_t>(calling_frame->fp());
   args.This()->Set(v8_str("low_bits"), v8_num(low_bits >> 1));
 #elif defined(V8_HOST_ARCH_64_BIT)
-  int32_t low_bits = reinterpret_cast<uintptr_t>(calling_frame->fp());
-  int32_t high_bits = reinterpret_cast<uintptr_t>(calling_frame->fp()) >> 32;
+  uint64_t fp = reinterpret_cast<uint64_t>(calling_frame->fp());
+  int32_t low_bits = fp & 0xffffffff;
+  int32_t high_bits = fp >> 32;
   args.This()->Set(v8_str("low_bits"), v8_num(low_bits));
   args.This()->Set(v8_str("high_bits"), v8_num(high_bits));
 #else