| Index: src/zone-allocator.h
|
| diff --git a/src/zone-allocator.h b/src/zone-allocator.h
|
| index c6e3d780022cc6f131bdf72fa173f4f0b806cec4..8501c35b2729cd0df739b85f731e3646e738ffd5 100644
|
| --- a/src/zone-allocator.h
|
| +++ b/src/zone-allocator.h
|
| @@ -5,6 +5,8 @@
|
| #ifndef V8_ZONE_ALLOCATOR_H_
|
| #define V8_ZONE_ALLOCATOR_H_
|
|
|
| +#include <limits>
|
| +
|
| #include "zone.h"
|
|
|
| namespace v8 {
|
| @@ -34,16 +36,14 @@ class zone_allocator {
|
| pointer address(reference x) const {return &x;}
|
| const_pointer address(const_reference x) const {return &x;}
|
|
|
| - pointer allocate(size_type count, const void* hint = 0) {
|
| - size_t size = count * sizeof(value_type);
|
| - size = RoundUp(size, kPointerSize);
|
| - return static_cast<pointer>(zone_->New(size));
|
| + pointer allocate(size_type n, const void* hint = 0) {
|
| + return static_cast<pointer>(zone_->NewArray<value_type>(
|
| + static_cast<int>(n)));
|
| }
|
| void deallocate(pointer p, size_type) { /* noop for Zones */ }
|
|
|
| size_type max_size() const throw() {
|
| - size_type max = static_cast<size_type>(-1) / sizeof(T);
|
| - return (max > 0 ? max : 1);
|
| + return std::numeric_limits<int>::max() / sizeof(value_type);
|
| }
|
| void construct(pointer p, const T& val) {
|
| new(static_cast<void*>(p)) T(val);
|
|
|