Lines Matching full:size
36 #define CHECK_OBJ_AND_THROW_OOM_ERROR(object, size, space, message) … argument
45 …ThrowOutOfMemoryError(GetJSThread(), size, message); …
46 …(object) = reinterpret_cast<TaggedObject *>((space)->Allocate(size)); …
49 #define CHECK_SOBJ_AND_THROW_OOM_ERROR(thread, object, size, space, message) … argument
54 …ThrowOutOfMemoryError(thread, size, message); …
55 …(object) = reinterpret_cast<TaggedObject *>((space)->Allocate(thread, size)); …
58 #define CHECK_MACHINE_CODE_OBJ_AND_SET_OOM_ERROR_FORT(object, size, space, desc, message) … argument
63 …SetMachineCodeOutOfMemoryError(GetJSThread(), size, message); …
64 …(object) = reinterpret_cast<TaggedObject *>((space)->Allocate(size, desc)); …
67 #define CHECK_MACHINE_CODE_OBJ_AND_SET_OOM_ERROR(object, size, space, message) … argument
72 …SetMachineCodeOutOfMemoryError(GetJSThread(), size, message); …
73 …(object) = reinterpret_cast<TaggedObject *>((space)->Allocate(size)); …
204 size_t size = hclass->GetObjectSize(); in AllocateYoungOrHugeObject() local
205 return AllocateYoungOrHugeObject(hclass, size); in AllocateYoungOrHugeObject()
208 TaggedObject *Heap::AllocateYoungOrHugeObject(size_t size) in AllocateYoungOrHugeObject() argument
210 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in AllocateYoungOrHugeObject()
212 if (size > MAX_REGULAR_HEAP_OBJECT_SIZE) { in AllocateYoungOrHugeObject()
213 object = AllocateHugeObject(size); in AllocateYoungOrHugeObject()
215 object = AllocateInGeneralNewSpace(size); in AllocateYoungOrHugeObject()
220 object = AllocateInGeneralNewSpace(size); in AllocateYoungOrHugeObject()
223 object = AllocateInGeneralNewSpace(size); in AllocateYoungOrHugeObject()
224 … CHECK_OBJ_AND_THROW_OOM_ERROR(object, size, activeSemiSpace_, "Heap::AllocateYoungOrHugeObject"); in AllocateYoungOrHugeObject()
231 TaggedObject *Heap::AllocateInGeneralNewSpace(size_t size) in AllocateInGeneralNewSpace() argument
234 auto object = reinterpret_cast<TaggedObject *>(edenSpace_->Allocate(size)); in AllocateInGeneralNewSpace()
239 return reinterpret_cast<TaggedObject *>(activeSemiSpace_->Allocate(size)); in AllocateInGeneralNewSpace()
242 TaggedObject *Heap::AllocateYoungOrHugeObject(JSHClass *hclass, size_t size) in AllocateYoungOrHugeObject() argument
244 auto object = AllocateYoungOrHugeObject(size); in AllocateYoungOrHugeObject()
248 OnAllocateEvent(GetEcmaVM(), object, size); in AllocateYoungOrHugeObject()
254 [[maybe_unused]] size_t size) in SetHClassAndDoAllocateEvent() argument
259 OnAllocateEvent(thread->GetEcmaVM(), object, size); in SetHClassAndDoAllocateEvent()
263 uintptr_t Heap::AllocateYoungSync(size_t size) in AllocateYoungSync() argument
265 return activeSemiSpace_->AllocateSync(size); in AllocateYoungSync()
292 TaggedObject *Heap::TryAllocateYoungGeneration(JSHClass *hclass, size_t size) in TryAllocateYoungGeneration() argument
294 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in TryAllocateYoungGeneration()
295 if (size > MAX_REGULAR_HEAP_OBJECT_SIZE) { in TryAllocateYoungGeneration()
298 auto object = reinterpret_cast<TaggedObject *>(activeSemiSpace_->Allocate(size)); in TryAllocateYoungGeneration()
303 OnAllocateEvent(GetEcmaVM(), object, size); in TryAllocateYoungGeneration()
310 size_t size = hclass->GetObjectSize(); in AllocateOldOrHugeObject() local
311 TaggedObject *object = AllocateOldOrHugeObject(hclass, size); in AllocateOldOrHugeObject()
316 OnAllocateEvent(GetEcmaVM(), object, size); in AllocateOldOrHugeObject()
321 TaggedObject *Heap::AllocateOldOrHugeObject(JSHClass *hclass, size_t size) in AllocateOldOrHugeObject() argument
323 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in AllocateOldOrHugeObject()
325 if (size > MAX_REGULAR_HEAP_OBJECT_SIZE) { in AllocateOldOrHugeObject()
326 object = AllocateHugeObject(hclass, size); in AllocateOldOrHugeObject()
328 object = reinterpret_cast<TaggedObject *>(oldSpace_->Allocate(size)); in AllocateOldOrHugeObject()
329 CHECK_OBJ_AND_THROW_OOM_ERROR(object, size, oldSpace_, "Heap::AllocateOldOrHugeObject"); in AllocateOldOrHugeObject()
333 OnAllocateEvent(GetEcmaVM(), reinterpret_cast<TaggedObject*>(object), size); in AllocateOldOrHugeObject()
340 size_t size = hclass->GetObjectSize(); in AllocateReadOnlyOrHugeObject() local
341 TaggedObject *object = AllocateReadOnlyOrHugeObject(hclass, size); in AllocateReadOnlyOrHugeObject()
343 OnAllocateEvent(GetEcmaVM(), object, size); in AllocateReadOnlyOrHugeObject()
348 TaggedObject *Heap::AllocateReadOnlyOrHugeObject(JSHClass *hclass, size_t size) in AllocateReadOnlyOrHugeObject() argument
350 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in AllocateReadOnlyOrHugeObject()
352 if (size > MAX_REGULAR_HEAP_OBJECT_SIZE) { in AllocateReadOnlyOrHugeObject()
353 object = AllocateHugeObject(hclass, size); in AllocateReadOnlyOrHugeObject()
355 object = reinterpret_cast<TaggedObject *>(readOnlySpace_->Allocate(size)); in AllocateReadOnlyOrHugeObject()
356 … CHECK_OBJ_AND_THROW_OOM_ERROR(object, size, readOnlySpace_, "Heap::AllocateReadOnlyOrHugeObject"); in AllocateReadOnlyOrHugeObject()
361 OnAllocateEvent(GetEcmaVM(), object, size); in AllocateReadOnlyOrHugeObject()
368 size_t size = hclass->GetObjectSize(); in AllocateNonMovableOrHugeObject() local
369 TaggedObject *object = AllocateNonMovableOrHugeObject(hclass, size); in AllocateNonMovableOrHugeObject()
374 OnAllocateEvent(GetEcmaVM(), object, size); in AllocateNonMovableOrHugeObject()
379 TaggedObject *Heap::AllocateNonMovableOrHugeObject(JSHClass *hclass, size_t size) in AllocateNonMovableOrHugeObject() argument
381 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in AllocateNonMovableOrHugeObject()
383 if (size > MAX_REGULAR_HEAP_OBJECT_SIZE) { in AllocateNonMovableOrHugeObject()
384 object = AllocateHugeObject(hclass, size); in AllocateNonMovableOrHugeObject()
386 object = reinterpret_cast<TaggedObject *>(nonMovableSpace_->CheckAndAllocate(size)); in AllocateNonMovableOrHugeObject()
387 …CHECK_OBJ_AND_THROW_OOM_ERROR(object, size, nonMovableSpace_, "Heap::AllocateNonMovableOrHugeObjec… in AllocateNonMovableOrHugeObject()
391 OnAllocateEvent(GetEcmaVM(), object, size); in AllocateNonMovableOrHugeObject()
396 TaggedObject *Heap::AllocateClassClass(JSHClass *hclass, size_t size) in AllocateClassClass() argument
398 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in AllocateClassClass()
399 auto object = reinterpret_cast<TaggedObject *>(nonMovableSpace_->Allocate(size)); in AllocateClassClass()
406 OnAllocateEvent(GetEcmaVM(), object, size); in AllocateClassClass()
411 TaggedObject *SharedHeap::AllocateClassClass(JSThread *thread, JSHClass *hclass, size_t size) in AllocateClassClass() argument
413 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in AllocateClassClass()
414 auto object = reinterpret_cast<TaggedObject *>(sReadOnlySpace_->Allocate(thread, size)); in AllocateClassClass()
421 OnAllocateEvent(thread->GetEcmaVM(), object, size); in AllocateClassClass()
426 TaggedObject *Heap::AllocateHugeObject(size_t size) in AllocateHugeObject() argument
429 CheckAndTriggerOldGC(size); in AllocateHugeObject()
431 auto *object = reinterpret_cast<TaggedObject *>(hugeObjectSpace_->Allocate(size, thread_)); in AllocateHugeObject()
434 object = reinterpret_cast<TaggedObject *>(hugeObjectSpace_->Allocate(size, thread_)); in AllocateHugeObject()
436 // if allocate huge object OOM, temporarily increase space size to avoid vm crash in AllocateHugeObject()
441 object = reinterpret_cast<TaggedObject *>(hugeObjectSpace_->Allocate(size, thread_)); in AllocateHugeObject()
442 ThrowOutOfMemoryError(thread_, size, "Heap::AllocateHugeObject"); in AllocateHugeObject()
443 object = reinterpret_cast<TaggedObject *>(hugeObjectSpace_->Allocate(size, thread_)); in AllocateHugeObject()
445 FatalOutOfMemoryError(size, "Heap::AllocateHugeObject"); in AllocateHugeObject()
452 TaggedObject *Heap::AllocateHugeObject(JSHClass *hclass, size_t size) in AllocateHugeObject() argument
455 CheckAndTriggerOldGC(size); in AllocateHugeObject()
456 auto object = AllocateHugeObject(size); in AllocateHugeObject()
459 OnAllocateEvent(GetEcmaVM(), object, size); in AllocateHugeObject()
464 TaggedObject *Heap::AllocateHugeMachineCodeObject(size_t size, MachineCodeDesc *desc) in AllocateHugeMachineCodeObject() argument
469 size, thread_, reinterpret_cast<void *>(desc))); in AllocateHugeMachineCodeObject()
472 size, thread_)); in AllocateHugeMachineCodeObject()
477 TaggedObject *Heap::AllocateMachineCodeObject(JSHClass *hclass, size_t size, MachineCodeDesc *desc) in AllocateMachineCodeObject() argument
480 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in AllocateMachineCodeObject()
484 object = (size > MAX_REGULAR_HEAP_OBJECT_SIZE) ? in AllocateMachineCodeObject()
485 reinterpret_cast<TaggedObject *>(AllocateHugeMachineCodeObject(size)) : in AllocateMachineCodeObject()
486 reinterpret_cast<TaggedObject *>(machineCodeSpace_->Allocate(size)); in AllocateMachineCodeObject()
487 CHECK_MACHINE_CODE_OBJ_AND_SET_OOM_ERROR(object, size, machineCodeSpace_, in AllocateMachineCodeObject()
491 OnAllocateEvent(GetEcmaVM(), object, size); in AllocateMachineCodeObject()
500 if (size <= MAX_REGULAR_HEAP_OBJECT_SIZE) { in AllocateMachineCodeObject()
509 object = (size > MAX_REGULAR_HEAP_OBJECT_SIZE) ? in AllocateMachineCodeObject()
510 reinterpret_cast<TaggedObject *>(AllocateHugeMachineCodeObject(size, desc)) : in AllocateMachineCodeObject()
511 reinterpret_cast<TaggedObject *>(machineCodeSpace_->Allocate(size, desc, true)); in AllocateMachineCodeObject()
512 CHECK_MACHINE_CODE_OBJ_AND_SET_OOM_ERROR_FORT(object, size, machineCodeSpace_, desc, in AllocateMachineCodeObject()
516 OnAllocateEvent(GetEcmaVM(), object, size); in AllocateMachineCodeObject()
521 uintptr_t Heap::AllocateSnapshotSpace(size_t size) in AllocateSnapshotSpace() argument
523 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in AllocateSnapshotSpace()
524 uintptr_t object = snapshotSpace_->Allocate(size); in AllocateSnapshotSpace()
526 FatalOutOfMemoryError(size, "Heap::AllocateSnapshotSpaceObject"); in AllocateSnapshotSpace()
529 OnAllocateEvent(GetEcmaVM(), reinterpret_cast<TaggedObject *>(object), size); in AllocateSnapshotSpace()
534 TaggedObject *Heap::AllocateSharedNonMovableSpaceFromTlab(JSThread *thread, size_t size) in AllocateSharedNonMovableSpaceFromTlab() argument
537 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in AllocateSharedNonMovableSpaceFromTlab()
538 TaggedObject *object = reinterpret_cast<TaggedObject*>(sNonMovableTlab_->Allocate(size)); in AllocateSharedNonMovableSpaceFromTlab()
542 if (!sNonMovableTlab_->NeedNewTlab(size)) { in AllocateSharedNonMovableSpaceFromTlab()
553 sNonMovableTlab_->Reset(begin, begin + newTlabSize, begin + size); in AllocateSharedNonMovableSpaceFromTlab()
561 TaggedObject *Heap::AllocateSharedOldSpaceFromTlab(JSThread *thread, size_t size) in AllocateSharedOldSpaceFromTlab() argument
564 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in AllocateSharedOldSpaceFromTlab()
565 TaggedObject *object = reinterpret_cast<TaggedObject*>(sOldTlab_->Allocate(size)); in AllocateSharedOldSpaceFromTlab()
569 if (!sOldTlab_->NeedNewTlab(size)) { in AllocateSharedOldSpaceFromTlab()
580 sOldTlab_->Reset(begin, begin + newTlabSize, begin + size); in AllocateSharedOldSpaceFromTlab()
791 // Record alive object size after shared gc and other stats in CollectGarbageFinish()
802 size_t size = hclass->GetObjectSize(); in AllocateNonMovableOrHugeObject() local
803 return AllocateNonMovableOrHugeObject(thread, hclass, size); in AllocateNonMovableOrHugeObject()
806 …Object *SharedHeap::AllocateNonMovableOrHugeObject(JSThread *thread, JSHClass *hclass, size_t size) in AllocateNonMovableOrHugeObject() argument
808 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in AllocateNonMovableOrHugeObject()
809 if (size > MAX_REGULAR_HEAP_OBJECT_SIZE) { in AllocateNonMovableOrHugeObject()
810 return AllocateHugeObject(thread, hclass, size); in AllocateNonMovableOrHugeObject()
813 …t_cast<Heap*>(thread->GetEcmaVM()->GetHeap())->AllocateSharedNonMovableSpaceFromTlab(thread, size); in AllocateNonMovableOrHugeObject()
815 object = reinterpret_cast<TaggedObject *>(sNonMovableSpace_->Allocate(thread, size)); in AllocateNonMovableOrHugeObject()
816 CHECK_SOBJ_AND_THROW_OOM_ERROR(thread, object, size, sNonMovableSpace_, in AllocateNonMovableOrHugeObject()
824 OnAllocateEvent(thread->GetEcmaVM(), object, size); in AllocateNonMovableOrHugeObject()
829 TaggedObject *SharedHeap::AllocateNonMovableOrHugeObject(JSThread *thread, size_t size) in AllocateNonMovableOrHugeObject() argument
831 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in AllocateNonMovableOrHugeObject()
832 if (size > MAX_REGULAR_HEAP_OBJECT_SIZE) { in AllocateNonMovableOrHugeObject()
833 return AllocateHugeObject(thread, size); in AllocateNonMovableOrHugeObject()
836 …t_cast<Heap*>(thread->GetEcmaVM()->GetHeap())->AllocateSharedNonMovableSpaceFromTlab(thread, size); in AllocateNonMovableOrHugeObject()
838 object = reinterpret_cast<TaggedObject *>(sNonMovableSpace_->Allocate(thread, size)); in AllocateNonMovableOrHugeObject()
839 CHECK_SOBJ_AND_THROW_OOM_ERROR(thread, object, size, sNonMovableSpace_, in AllocateNonMovableOrHugeObject()
844 OnAllocateEvent(thread->GetEcmaVM(), object, size); in AllocateNonMovableOrHugeObject()
851 size_t size = hclass->GetObjectSize(); in AllocateOldOrHugeObject() local
852 return AllocateOldOrHugeObject(thread, hclass, size); in AllocateOldOrHugeObject()
855 TaggedObject *SharedHeap::AllocateOldOrHugeObject(JSThread *thread, JSHClass *hclass, size_t size) in AllocateOldOrHugeObject() argument
857 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in AllocateOldOrHugeObject()
858 if (size > MAX_REGULAR_HEAP_OBJECT_SIZE) { in AllocateOldOrHugeObject()
859 return AllocateHugeObject(thread, hclass, size); in AllocateOldOrHugeObject()
862 … const_cast<Heap*>(thread->GetEcmaVM()->GetHeap())->AllocateSharedOldSpaceFromTlab(thread, size); in AllocateOldOrHugeObject()
864 object = AllocateInSOldSpace(thread, size); in AllocateOldOrHugeObject()
865 …CHECK_SOBJ_AND_THROW_OOM_ERROR(thread, object, size, sOldSpace_, "SharedHeap::AllocateOldOrHugeObj… in AllocateOldOrHugeObject()
872 OnAllocateEvent(thread->GetEcmaVM(), object, size); in AllocateOldOrHugeObject()
877 TaggedObject *SharedHeap::AllocateOldOrHugeObject(JSThread *thread, size_t size) in AllocateOldOrHugeObject() argument
879 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in AllocateOldOrHugeObject()
880 if (size > MAX_REGULAR_HEAP_OBJECT_SIZE) { in AllocateOldOrHugeObject()
881 return AllocateHugeObject(thread, size); in AllocateOldOrHugeObject()
884 … const_cast<Heap*>(thread->GetEcmaVM()->GetHeap())->AllocateSharedOldSpaceFromTlab(thread, size); in AllocateOldOrHugeObject()
886 object = AllocateInSOldSpace(thread, size); in AllocateOldOrHugeObject()
887 …CHECK_SOBJ_AND_THROW_OOM_ERROR(thread, object, size, sOldSpace_, "SharedHeap::AllocateOldOrHugeObj… in AllocateOldOrHugeObject()
893 TaggedObject *SharedHeap::AllocateInSOldSpace(JSThread *thread, size_t size) in AllocateInSOldSpace() argument
899 localHeap->TryTriggerFullMarkBySharedSize(size); in AllocateInSOldSpace()
901 … *object = reinterpret_cast<TaggedObject *>(sOldSpace_->TryAllocateAndExpand(thread, size, false)); in AllocateInSOldSpace()
907 … object = reinterpret_cast<TaggedObject *>(sOldSpace_->TryAllocateAndExpand(thread, size, true)); in AllocateInSOldSpace()
912 … object = reinterpret_cast<TaggedObject *>(sOldSpace_->TryAllocateAndExpand(thread, size, true)); in AllocateInSOldSpace()
918 TaggedObject *SharedHeap::AllocateHugeObject(JSThread *thread, JSHClass *hclass, size_t size) in AllocateHugeObject() argument
920 auto object = AllocateHugeObject(thread, size); in AllocateHugeObject()
923 OnAllocateEvent(thread->GetEcmaVM(), object, size); in AllocateHugeObject()
928 TaggedObject *SharedHeap::AllocateHugeObject(JSThread *thread, size_t size) in AllocateHugeObject() argument
931 CheckHugeAndTriggerSharedGC(thread, size); in AllocateHugeObject()
932 auto *object = reinterpret_cast<TaggedObject *>(sHugeObjectSpace_->Allocate(thread, size)); in AllocateHugeObject()
935 object = reinterpret_cast<TaggedObject *>(sHugeObjectSpace_->Allocate(thread, size)); in AllocateHugeObject()
937 // if allocate huge object OOM, temporarily increase space size to avoid vm crash in AllocateHugeObject()
941 ThrowOutOfMemoryError(thread, size, "SharedHeap::AllocateHugeObject"); in AllocateHugeObject()
942 object = reinterpret_cast<TaggedObject *>(sHugeObjectSpace_->Allocate(thread, size)); in AllocateHugeObject()
944 FatalOutOfMemoryError(size, "SharedHeap::AllocateHugeObject"); in AllocateHugeObject()
954 size_t size = hclass->GetObjectSize(); in AllocateReadOnlyOrHugeObject() local
955 return AllocateReadOnlyOrHugeObject(thread, hclass, size); in AllocateReadOnlyOrHugeObject()
958 …edObject *SharedHeap::AllocateReadOnlyOrHugeObject(JSThread *thread, JSHClass *hclass, size_t size) in AllocateReadOnlyOrHugeObject() argument
960 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in AllocateReadOnlyOrHugeObject()
961 if (size > MAX_REGULAR_HEAP_OBJECT_SIZE) { in AllocateReadOnlyOrHugeObject()
962 return AllocateHugeObject(thread, hclass, size); in AllocateReadOnlyOrHugeObject()
964 auto object = reinterpret_cast<TaggedObject *>(sReadOnlySpace_->Allocate(thread, size)); in AllocateReadOnlyOrHugeObject()
965 …CHECK_SOBJ_AND_THROW_OOM_ERROR(thread, object, size, sReadOnlySpace_, "SharedHeap::AllocateReadOnl… in AllocateReadOnlyOrHugeObject()
971 TaggedObject *SharedHeap::AllocateSOldTlab(JSThread *thread, size_t size) in AllocateSOldTlab() argument
973 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in AllocateSOldTlab()
974 if (size > MAX_REGULAR_HEAP_OBJECT_SIZE) { in AllocateSOldTlab()
979 object = reinterpret_cast<TaggedObject *>(sOldSpace_->AllocateNoGCAndExpand(thread, size)); in AllocateSOldTlab()
981 object = AllocateInSOldSpace(thread, size); in AllocateSOldTlab()
986 TaggedObject *SharedHeap::AllocateSNonMovableTlab(JSThread *thread, size_t size) in AllocateSNonMovableTlab() argument
988 size = AlignUp(size, static_cast<size_t>(MemAlignment::MEM_ALIGN_OBJECT)); in AllocateSNonMovableTlab()
989 if (size > MAX_REGULAR_HEAP_OBJECT_SIZE) { in AllocateSNonMovableTlab()
993 object = reinterpret_cast<TaggedObject *>(sNonMovableSpace_->Allocate(thread, size)); in AllocateSNonMovableTlab()
1070 if (vec.size() < vec.capacity() / SHRINK_FACTOR) { in ShrinkWithFactor()
1081 …TRACE_NAME(HITRACE_TAG_ARK, "ProcessNativeDeleteNum:" + std::to_string(nativePointerList_.size())); in ProcessNativeDelete()
1144 …BYTRACE_NAME(HITRACE_TAG_ARK, "ProcessReferencesNum:" + std::to_string(nativePointerList_.size())); in ProcessReferences()