Lines Matching refs:ptr

310 	void              *ptr;  member
456 void *ptr = VirtualAlloc(addr, size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); in zend_mm_mmap_fixed() local
458 if (ptr == NULL) { in zend_mm_mmap_fixed()
468 ZEND_ASSERT(ptr == addr); in zend_mm_mmap_fixed()
469 return ptr; in zend_mm_mmap_fixed()
478 …void *ptr = mmap(addr, size, PROT_READ | PROT_WRITE, flags /*| MAP_POPULATE | MAP_HUGETLB*/, ZEND_… in zend_mm_mmap_fixed()
480 if (ptr == MAP_FAILED) { in zend_mm_mmap_fixed()
485 } else if (ptr != addr) { in zend_mm_mmap_fixed()
486 zend_mm_munmap(ptr, size); in zend_mm_mmap_fixed()
489 return ptr; in zend_mm_mmap_fixed()
497 void *ptr = VirtualAlloc(NULL, size, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); in zend_mm_mmap() local
499 if (ptr == NULL) { in zend_mm_mmap()
505 return ptr; in zend_mm_mmap()
507 void *ptr; in zend_mm_mmap()
518 ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, mflags, fd, 0); in zend_mm_mmap()
519 if (ptr != MAP_FAILED) { in zend_mm_mmap()
520 zend_mmap_set_name(ptr, size, "zend_alloc"); in zend_mm_mmap()
521 return ptr; in zend_mm_mmap()
526 ptr = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, ZEND_MM_FD, 0); in zend_mm_mmap()
528 if (ptr == MAP_FAILED) { in zend_mm_mmap()
534 zend_mmap_set_name(ptr, size, "zend_alloc"); in zend_mm_mmap()
535 return ptr; in zend_mm_mmap()
701 static zend_always_inline void zend_mm_hugepage(void* ptr, size_t size) argument
704 (void)madvise(ptr, size, MADV_HUGEPAGE);
707 (void)memcntl(ptr, size, MC_HAT_ADVISE, (char *)&m, 0, 0);
715 void *ptr = zend_mm_mmap(size); local
717 if (ptr == NULL) {
719 } else if (ZEND_MM_ALIGNED_OFFSET(ptr, alignment) == 0) {
721 zend_mm_hugepage(ptr, size);
724 ASAN_UNPOISON_MEMORY_REGION(ptr, size);
726 return ptr;
731 zend_mm_munmap(ptr, size);
732 ptr = zend_mm_mmap(size + alignment - REAL_PAGE_SIZE);
734 offset = ZEND_MM_ALIGNED_OFFSET(ptr, alignment);
738 zend_mm_munmap(ptr, size + alignment - REAL_PAGE_SIZE);
739 ptr = zend_mm_mmap_fixed((void*)((char*)ptr + offset), size);
740 if (ptr == NULL) { // fix GH-9650, fixed addr range is not free
741 ptr = zend_mm_mmap(size + alignment - REAL_PAGE_SIZE);
742 if (ptr == NULL) {
745 offset = ZEND_MM_ALIGNED_OFFSET(ptr, alignment);
747 ptr = (void*)((char*)ptr + alignment - offset);
750 return ptr;
752 offset = ZEND_MM_ALIGNED_OFFSET(ptr, alignment);
755 zend_mm_munmap(ptr, offset);
756 ptr = (char*)ptr + offset;
760 zend_mm_munmap((char*)ptr + size, alignment - REAL_PAGE_SIZE);
763 zend_mm_hugepage(ptr, size);
766 ASAN_UNPOISON_MEMORY_REGION(ptr, size);
769 return ptr;
777 void *ptr = heap->storage->handlers.chunk_alloc(heap->storage, size, alignment); local
778 ZEND_ASSERT(((uintptr_t)((char*)ptr + (alignment-1)) & (alignment-1)) == (uintptr_t)ptr);
779 return ptr;
828 void *ptr = mremap(addr, old_size, new_size, 0); local
829 if (ptr == MAP_FAILED) {
833 ZEND_ASSERT(ptr == addr);
863 static size_t zend_mm_get_huge_block_size(zend_mm_heap *heap, void *ptr ZEND_FILE_LINE_DC ZEND_FILE…
865 static void zend_mm_free_huge(zend_mm_heap *heap, void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_D…
868 static void zend_mm_change_huge_block_size(zend_mm_heap *heap, void *ptr, size_t size, size_t dbg_s…
870 static void zend_mm_change_huge_block_size(zend_mm_heap *heap, void *ptr, size_t size ZEND_FILE_LIN…
1093 …void *ptr = zend_mm_alloc_pages(heap, pages_count, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORI… local
1095 …void *ptr = zend_mm_alloc_pages(heap, pages_count ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELA… local
1105 return ptr;
1327 static zend_always_inline void zend_mm_free_small(zend_mm_heap *heap, void *ptr, int bin_num) argument
1337 …zend_mm_debug_info *dbg = (zend_mm_debug_info*)((char*)ptr + bin_data_size[bin_num] - ZEND_MM_ALIG…
1342 p = (zend_mm_free_slot*)ptr;
1352 static zend_always_inline zend_mm_debug_info *zend_mm_get_debug_info(zend_mm_heap *heap, void *ptr) argument
1354 size_t page_offset = ZEND_MM_ALIGNED_OFFSET(ptr, ZEND_MM_CHUNK_SIZE);
1360 chunk = (zend_mm_chunk*)ZEND_MM_ALIGNED_BASE(ptr, ZEND_MM_CHUNK_SIZE);
1366 …return (zend_mm_debug_info*)((char*)ptr + bin_data_size[bin_num] - ZEND_MM_ALIGNED_SIZE(sizeof(zen…
1370 …return (zend_mm_debug_info*)((char*)ptr + ZEND_MM_PAGE_SIZE * pages_count - ZEND_MM_ALIGNED_SIZE(s…
1377 void *ptr; local
1391ptr = zend_mm_alloc_small(heap, ZEND_MM_SMALL_SIZE_TO_BIN(size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_…
1393 dbg = zend_mm_get_debug_info(heap, ptr);
1400 return ptr;
1402 ptr = zend_mm_alloc_large(heap, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
1404 dbg = zend_mm_get_debug_info(heap, ptr);
1411 return ptr;
1420 static zend_always_inline void zend_mm_free_heap(zend_mm_heap *heap, void *ptr ZEND_FILE_LINE_DC ZE…
1422 size_t page_offset = ZEND_MM_ALIGNED_OFFSET(ptr, ZEND_MM_CHUNK_SIZE);
1425 if (ptr != NULL) {
1426 zend_mm_free_huge(heap, ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
1429 zend_mm_chunk *chunk = (zend_mm_chunk*)ZEND_MM_ALIGNED_BASE(ptr, ZEND_MM_CHUNK_SIZE);
1435 zend_mm_free_small(heap, ptr, ZEND_MM_SRUN_BIN_NUM(info));
1445 static size_t zend_mm_size(zend_mm_heap *heap, void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
1447 size_t page_offset = ZEND_MM_ALIGNED_OFFSET(ptr, ZEND_MM_CHUNK_SIZE);
1450 …return zend_mm_get_huge_block_size(heap, ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
1454 zend_mm_debug_info *dbg = zend_mm_get_debug_info(heap, ptr);
1460 chunk = (zend_mm_chunk*)ZEND_MM_ALIGNED_BASE(ptr, ZEND_MM_CHUNK_SIZE);
1473 static zend_never_inline void *zend_mm_realloc_slow(zend_mm_heap *heap, void *ptr, size_t size, siz… argument
1482 memcpy(ret, ptr, copy_size);
1483 zend_mm_free_heap(heap, ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
1491 static zend_never_inline void *zend_mm_realloc_huge(zend_mm_heap *heap, void *ptr, size_t size, siz… argument
1499 …old_size = zend_mm_get_huge_block_size(heap, ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY…
1519 …zend_mm_change_huge_block_size(heap, ptr, new_size, real_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LI…
1521 …zend_mm_change_huge_block_size(heap, ptr, new_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_REL…
1523 return ptr;
1526 if (zend_mm_chunk_truncate(heap, ptr, old_size, new_size)) {
1534 …zend_mm_change_huge_block_size(heap, ptr, new_size, real_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LI…
1536 …zend_mm_change_huge_block_size(heap, ptr, new_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_REL…
1538 return ptr;
1556 if (zend_mm_chunk_extend(heap, ptr, old_size, new_size)) {
1566 …zend_mm_change_huge_block_size(heap, ptr, new_size, real_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LI…
1568 …zend_mm_change_huge_block_size(heap, ptr, new_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_REL…
1570 return ptr;
1575 …return zend_mm_realloc_slow(heap, ptr, size, MIN(old_size, copy_size) ZEND_FILE_LINE_RELAY_CC ZEND…
1578 static zend_always_inline void *zend_mm_realloc_heap(zend_mm_heap *heap, void *ptr, size_t size, bo… argument
1588 page_offset = ZEND_MM_ALIGNED_OFFSET(ptr, ZEND_MM_CHUNK_SIZE);
1590 if (EXPECTED(ptr == NULL)) {
1593 …return zend_mm_realloc_huge(heap, ptr, size, copy_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG…
1596 zend_mm_chunk *chunk = (zend_mm_chunk*)ZEND_MM_ALIGNED_BASE(ptr, ZEND_MM_CHUNK_SIZE);
1619 memcpy(ret, ptr, copy_size);
1620 zend_mm_free_small(heap, ptr, old_bin_num);
1623 ret = ptr;
1634 memcpy(ret, ptr, copy_size);
1635 zend_mm_free_small(heap, ptr, old_bin_num);
1663 dbg = zend_mm_get_debug_info(heap, ptr);
1670 return ptr;
1683 dbg = zend_mm_get_debug_info(heap, ptr);
1690 return ptr;
1710 dbg = zend_mm_get_debug_info(heap, ptr);
1717 return ptr;
1728 …return zend_mm_realloc_slow(heap, ptr, size, copy_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG…
1736 static void zend_mm_add_huge_block(zend_mm_heap *heap, void *ptr, size_t size, size_t dbg_size ZEND… argument
1738 static void zend_mm_add_huge_block(zend_mm_heap *heap, void *ptr, size_t size ZEND_FILE_LINE_DC ZEN…
1742 list->ptr = ptr;
1755 static size_t zend_mm_del_huge_block(zend_mm_heap *heap, void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE…
1760 if (list->ptr == ptr) {
1779 static size_t zend_mm_get_huge_block_size(zend_mm_heap *heap, void *ptr ZEND_FILE_LINE_DC ZEND_FILE…
1783 if (list->ptr == ptr) {
1793 static void zend_mm_change_huge_block_size(zend_mm_heap *heap, void *ptr, size_t size, size_t dbg_s… argument
1795 static void zend_mm_change_huge_block_size(zend_mm_heap *heap, void *ptr, size_t size ZEND_FILE_LIN…
1800 if (list->ptr == ptr) {
1827 void *ptr; local
1847 ptr = zend_mm_chunk_alloc(heap, new_size, ZEND_MM_CHUNK_SIZE);
1848 if (UNEXPECTED(ptr == NULL)) {
1851 (ptr = zend_mm_chunk_alloc(heap, new_size, ZEND_MM_CHUNK_SIZE)) != NULL) {
1865 …zend_mm_add_huge_block(heap, ptr, new_size, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY…
1867 zend_mm_add_huge_block(heap, ptr, new_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
1885 return ptr;
1888 static void zend_mm_free_huge(zend_mm_heap *heap, void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_D…
1892 ZEND_MM_CHECK(ZEND_MM_ALIGNED_OFFSET(ptr, ZEND_MM_CHUNK_SIZE) == 0, "zend_mm_heap corrupted");
1893 size = zend_mm_del_huge_block(heap, ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
1894 zend_mm_chunk_free(heap, ptr, size);
2143 zend_mm_chunk_free(heap, p->ptr, p->size);
2169 leak.addr = list->ptr;
2185 zend_mm_chunk_free(heap, q->ptr, q->size);
2310 zend_mm_chunk_free(heap, q->ptr, q->size);
2391 ZEND_API void ZEND_FASTCALL _zend_mm_free(zend_mm_heap *heap, void *ptr ZEND_FILE_LINE_DC ZEND_FILE…
2393 zend_mm_free_heap(heap, ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2396 void* ZEND_FASTCALL _zend_mm_realloc(zend_mm_heap *heap, void *ptr, size_t size ZEND_FILE_LINE_DC Z… argument
2398 …return zend_mm_realloc_heap(heap, ptr, size, 0, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_R…
2401 void* ZEND_FASTCALL _zend_mm_realloc2(zend_mm_heap *heap, void *ptr, size_t size, size_t copy_size … argument
2403 …return zend_mm_realloc_heap(heap, ptr, size, 1, copy_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_O…
2406 ZEND_API size_t ZEND_FASTCALL _zend_mm_block_size(zend_mm_heap *heap, void *ptr ZEND_FILE_LINE_DC Z…
2411 zend_ulong h = ((uintptr_t) ptr) >> ZEND_MM_ALIGNMENT_LOG2;
2420 return zend_mm_size(heap, ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2449 ZEND_API bool is_zend_ptr(const void *ptr) argument
2454 zend_ulong h = ((uintptr_t) ptr) >> ZEND_MM_ALIGNMENT_LOG2;
2468 if (ptr >= (void*)chunk
2469 && ptr < (void*)((char*)chunk + ZEND_MM_CHUNK_SIZE)) {
2480 if (ptr >= (void*)block
2481 && ptr < (void*)((char*)block + block->size)) {
2499 # define ZEND_MM_CUSTOM_DEALLOCATOR(ptr) do { \ argument
2501 AG(mm_heap)->custom_heap._free(ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC); \
2507 # define ZEND_MM_CUSTOM_DEALLOCATOR(ptr) argument
2532 ZEND_API void ZEND_FASTCALL _efree_ ## _size(void *ptr) { \
2533 ZEND_MM_CUSTOM_DEALLOCATOR(ptr); \
2535 size_t page_offset = ZEND_MM_ALIGNED_OFFSET(ptr, ZEND_MM_CHUNK_SIZE); \
2536 zend_mm_chunk *chunk = (zend_mm_chunk*)ZEND_MM_ALIGNED_BASE(ptr, ZEND_MM_CHUNK_SIZE); \
2541 zend_mm_free_small(AG(mm_heap), ptr, _num); \
2546 ZEND_API void ZEND_FASTCALL _efree_ ## _size(void *ptr) { \
2547 ZEND_MM_CUSTOM_DEALLOCATOR(ptr); \
2549 zend_mm_chunk *chunk = (zend_mm_chunk*)ZEND_MM_ALIGNED_BASE(ptr, ZEND_MM_CHUNK_SIZE); \
2551 zend_mm_free_small(AG(mm_heap), ptr, _num); \
2558 ZEND_API void ZEND_FASTCALL _efree_large(void *ptr, size_t size)
2560 ZEND_MM_CUSTOM_DEALLOCATOR(ptr);
2562 size_t page_offset = ZEND_MM_ALIGNED_OFFSET(ptr, ZEND_MM_CHUNK_SIZE);
2563 zend_mm_chunk *chunk = (zend_mm_chunk*)ZEND_MM_ALIGNED_BASE(ptr, ZEND_MM_CHUNK_SIZE);
2574 ZEND_API void ZEND_FASTCALL _efree_huge(void *ptr, size_t size) argument
2577 ZEND_MM_CUSTOM_DEALLOCATOR(ptr);
2578 zend_mm_free_huge(AG(mm_heap), ptr);
2592 ZEND_API void ZEND_FASTCALL _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
2596 AG(mm_heap)->custom_heap._free(ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2600 zend_mm_free_heap(AG(mm_heap), ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2603 ZEND_API void* ZEND_FASTCALL _erealloc(void *ptr, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG… argument
2607 …return AG(mm_heap)->custom_heap._realloc(ptr, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_REL…
2610 …return zend_mm_realloc_heap(AG(mm_heap), ptr, size, 0, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE…
2613 ZEND_API void* ZEND_FASTCALL _erealloc2(void *ptr, size_t size, size_t copy_size ZEND_FILE_LINE_DC … argument
2617 …return AG(mm_heap)->custom_heap._realloc(ptr, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_REL…
2620 …return zend_mm_realloc_heap(AG(mm_heap), ptr, size, 1, copy_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE…
2623 ZEND_API size_t ZEND_FASTCALL _zend_mem_block_size(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_…
2625 return _zend_mm_block_size(AG(mm_heap), ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2638 ZEND_API void* ZEND_FASTCALL _safe_erealloc(void *ptr, size_t nmemb, size_t size, size_t offset ZEN… argument
2640 …return _erealloc(ptr, zend_safe_address_guarded(nmemb, size, offset) ZEND_FILE_LINE_RELAY_CC ZEND_…
2643 ZEND_API void* ZEND_FASTCALL _safe_realloc(void *ptr, size_t nmemb, size_t size, size_t offset) argument
2645 return perealloc(ptr, zend_safe_address_guarded(nmemb, size, offset), 1);
2783 static zend_always_inline void tracked_add(zend_mm_heap *heap, void *ptr, size_t size) { argument
2785 zend_ulong h = ((uintptr_t) ptr) >> ZEND_MM_ALIGNMENT_LOG2;
2786 ZEND_ASSERT((void *) (uintptr_t) (h << ZEND_MM_ALIGNMENT_LOG2) == ptr);
2791 static zend_always_inline zval *tracked_get_size_zv(zend_mm_heap *heap, void *ptr) { argument
2792 zend_ulong h = ((uintptr_t) ptr) >> ZEND_MM_ALIGNMENT_LOG2;
2817 void *ptr = malloc(size); local
2818 if (!ptr) {
2822 tracked_add(heap, ptr, size);
2824 return ptr;
2827 static void tracked_free(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) {
2828 if (!ptr) {
2833 zval *size_zv = tracked_get_size_zv(heap, ptr);
2836 free(ptr);
2839 static void *tracked_realloc(void *ptr, size_t new_size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) { argument
2843 if (ptr) {
2844 old_size_zv = tracked_get_size_zv(heap, ptr);
2857 ptr = __zend_realloc(ptr, new_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
2858 tracked_add(heap, ptr, new_size);
2860 return ptr;
2867 void *ptr = (void *) (uintptr_t) (h << ZEND_MM_ALIGNMENT_LOG2); local
2868 free(ptr);