Index: Source/wtf/dtoa/utils.h |
diff --git a/Source/wtf/dtoa/utils.h b/Source/wtf/dtoa/utils.h |
index 7f6a695e65a5a6f2b624d05e08d6051303277fd7..f6fe024aa56c7123a74d46690a0e14b7ac5d3748 100644 |
--- a/Source/wtf/dtoa/utils.h |
+++ b/Source/wtf/dtoa/utils.h |
@@ -115,29 +115,29 @@ DISALLOW_COPY_AND_ASSIGN(TypeName) |
namespace WTF { |
namespace double_conversion { |
- |
+ |
static const int kCharSize = sizeof(char); |
- |
+ |
// Returns the maximum of the two parameters. |
template <typename T> |
static T Max(T a, T b) { |
return a < b ? b : a; |
} |
- |
- |
+ |
+ |
// Returns the minimum of the two parameters. |
template <typename T> |
static T Min(T a, T b) { |
return a < b ? a : b; |
} |
- |
- |
+ |
+ |
inline int StrLength(const char* string) { |
size_t length = strlen(string); |
ASSERT(length == static_cast<size_t>(static_cast<int>(length))); |
return static_cast<int>(length); |
} |
- |
+ |
// This is a simplified version of V8's Vector class. |
template <typename T> |
class Vector { |
@@ -146,7 +146,7 @@ namespace double_conversion { |
Vector(T* data, int length) : start_(data), length_(length) { |
ASSERT(length == 0 || (length > 0 && data != NULL)); |
} |
- |
+ |
// Returns a vector using the same backing storage as this one, |
// spanning from and including 'from', to but not including 'to'. |
Vector<T> SubVector(int from, int to) { |
@@ -155,32 +155,32 @@ namespace double_conversion { |
ASSERT(0 <= from); |
return Vector<T>(start() + from, to - from); |
} |
- |
+ |
// Returns the length of the vector. |
int length() const { return length_; } |
- |
+ |
// Returns whether or not the vector is empty. |
bool is_empty() const { return length_ == 0; } |
- |
+ |
// Returns the pointer to the start of the data in the vector. |
T* start() const { return start_; } |
- |
+ |
// Access individual vector elements - checks bounds in debug mode. |
T& operator[](int index) const { |
ASSERT(0 <= index && index < length_); |
return start_[index]; |
} |
- |
+ |
T& first() { return start_[0]; } |
- |
+ |
T& last() { return start_[length_ - 1]; } |
- |
+ |
private: |
T* start_; |
int length_; |
}; |
- |
- |
+ |
+ |
// Helper class for building result strings in a character buffer. The |
// purpose of the class is to use safe operations that checks the |
// buffer bounds on all operations in debug mode. |
@@ -188,17 +188,17 @@ namespace double_conversion { |
public: |
StringBuilder(char* buffer, int size) |
: buffer_(buffer, size), position_(0) { } |
- |
+ |
~StringBuilder() { if (!is_finalized()) Finalize(); } |
- |
+ |
int size() const { return buffer_.length(); } |
- |
+ |
// Get the current position in the builder. |
int position() const { |
ASSERT(!is_finalized()); |
return position_; |
} |
- |
+ |
// Set the current position in the builder. |
void SetPosition(int position) |
{ |
@@ -206,10 +206,10 @@ namespace double_conversion { |
ASSERT_WITH_SECURITY_IMPLICATION(position < size()); |
position_ = position; |
} |
- |
+ |
// Reset the position. |
void Reset() { position_ = 0; } |
- |
+ |
// Add a single character to the builder. It is not allowed to add |
// 0-characters; use the Finalize() method to terminate the string |
// instead. |
@@ -218,13 +218,13 @@ namespace double_conversion { |
ASSERT(!is_finalized() && position_ < buffer_.length()); |
buffer_[position_++] = c; |
} |
- |
+ |
// Add an entire string to the builder. Uses strlen() internally to |
// compute the length of the input string. |
void AddString(const char* s) { |
AddSubstring(s, StrLength(s)); |
} |
- |
+ |
// Add the first 'n' characters of the given string 's' to the |
// builder. The input string must have enough characters. |
void AddSubstring(const char* s, int n) { |
@@ -233,8 +233,8 @@ namespace double_conversion { |
memcpy(&buffer_[position_], s, n * kCharSize); |
position_ += n; |
} |
- |
- |
+ |
+ |
// Add character padding to the builder. If count is non-positive, |
// nothing is added to the builder. |
void AddPadding(char c, int count) { |
@@ -242,7 +242,7 @@ namespace double_conversion { |
AddCharacter(c); |
} |
} |
- |
+ |
// Finalize the string by 0-terminating it and returning the buffer. |
char* Finalize() { |
ASSERT(!is_finalized() && position_ < buffer_.length()); |
@@ -254,16 +254,16 @@ namespace double_conversion { |
ASSERT(is_finalized()); |
return buffer_.start(); |
} |
- |
+ |
private: |
Vector<char> buffer_; |
int position_; |
- |
+ |
bool is_finalized() const { return position_ < 0; } |
- |
+ |
DISALLOW_IMPLICIT_CONSTRUCTORS(StringBuilder); |
}; |
- |
+ |
// The type-based aliasing rule allows the compiler to assume that pointers of |
// different types (for some definition of different) never alias each other. |
// Thus the following code does not work: |
@@ -293,17 +293,17 @@ namespace double_conversion { |
// Compile time assertion: sizeof(Dest) == sizeof(Source) |
// A compile error here means your Dest and Source have different sizes. |
typedef char VerifySizesAreEqual[sizeof(Dest) == sizeof(Source) ? 1 : -1]; |
- |
+ |
Dest dest; |
memcpy(&dest, &source, sizeof(dest)); |
return dest; |
} |
- |
+ |
template <class Dest, class Source> |
inline Dest BitCast(Source* source) { |
return BitCast<Dest>(reinterpret_cast<uintptr_t>(source)); |
} |
- |
+ |
} // namespace double_conversion |
} // namespace WTF |