diff options
author | Ryan <ry@tinyclouds.org> | 2009-06-29 10:55:05 +0200 |
---|---|---|
committer | Ryan <ry@tinyclouds.org> | 2009-06-29 10:55:05 +0200 |
commit | e763efdadf4bbd9c0155a4c7f782d271a2fd5814 (patch) | |
tree | 094824e55548cdeb2ce9b796cbf29aaa591bb69f /deps/v8/src/serialize.cc | |
parent | e876d6629e8682f5d818141bc0710f6d82311373 (diff) | |
download | node-new-e763efdadf4bbd9c0155a4c7f782d271a2fd5814.tar.gz |
Upgrade v8 to 1.2.10 and libev to 3.6
Diffstat (limited to 'deps/v8/src/serialize.cc')
-rw-r--r-- | deps/v8/src/serialize.cc | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/deps/v8/src/serialize.cc b/deps/v8/src/serialize.cc index eb497fb2e8..f45d65d304 100644 --- a/deps/v8/src/serialize.cc +++ b/deps/v8/src/serialize.cc @@ -1261,15 +1261,19 @@ RelativeAddress Serializer::Allocate(HeapObject* obj) { found = Heap::InSpace(obj, s); } CHECK(found); + int size = obj->Size(); if (s == NEW_SPACE) { - Space* space = Heap::TargetSpace(obj); - ASSERT(space == Heap::old_pointer_space() || - space == Heap::old_data_space()); - s = (space == Heap::old_pointer_space()) ? - OLD_POINTER_SPACE : - OLD_DATA_SPACE; + if (size > Heap::MaxObjectSizeInPagedSpace()) { + s = LO_SPACE; + } else { + OldSpace* space = Heap::TargetSpace(obj); + ASSERT(space == Heap::old_pointer_space() || + space == Heap::old_data_space()); + s = (space == Heap::old_pointer_space()) ? + OLD_POINTER_SPACE : + OLD_DATA_SPACE; + } } - int size = obj->Size(); GCTreatment gc_treatment = DataObject; if (obj->IsFixedArray()) gc_treatment = PointerObject; else if (obj->IsCode()) gc_treatment = CodeObject; |