From 7df1f40b0b1a2205d937fdd0e4c5086931d6cf48 Mon Sep 17 00:00:00 2001 From: "dcarney@chromium.org" Date: Mon, 10 Jun 2013 07:56:17 +0000 Subject: [PATCH] build fix for 15023 R=yangguo@chromium.org BUG= Review URL: https://codereview.chromium.org/16729002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/api.cc | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/api.cc b/src/api.cc index 3c1a003..2deab77 100644 --- a/src/api.cc +++ b/src/api.cc @@ -4303,6 +4303,23 @@ bool String::IsOneByte() const { return str->HasOnlyOneByteChars(); } +// Helpers for ContainsOnlyOneByteHelper +template struct OneByteMask; +template<> struct OneByteMask<4> { + static const uint32_t value = 0xFF00FF00; +}; +template<> struct OneByteMask<8> { + static const uint64_t value = 0xFF00FF00FF00FF00; +}; +static const uintptr_t kOneByteMask = OneByteMask::value; +static const uintptr_t kAlignmentMask = sizeof(uintptr_t) - 1; +static inline bool Unaligned(const uint16_t* chars) { + return reinterpret_cast(chars) & kAlignmentMask; +} +static inline const uint16_t* Align(const uint16_t* chars) { + return reinterpret_cast( + reinterpret_cast(chars) & ~kAlignmentMask); +} class ContainsOnlyOneByteHelper { public: @@ -4348,16 +4365,6 @@ class ContainsOnlyOneByteHelper { } private: - static const uintptr_t kOneByteMask = - static_cast(0xFF00FF00FF00FF00ULL); - static const uintptr_t kAlignmentMask = sizeof(uintptr_t) - 1; - static inline bool Unaligned(const uint16_t* chars) { - return reinterpret_cast(chars) & kAlignmentMask; - } - static inline const uint16_t* Align(const uint16_t* chars) { - return reinterpret_cast( - reinterpret_cast(chars) & ~kAlignmentMask); - } bool CheckCons(i::ConsString* cons_string) { while (true) { // Check left side if flat. -- 2.7.4