@@ -436,7 +436,15 @@ static void zend_mm_munmap(void *addr, size_t size)
436
436
static void * zend_mm_mmap_fixed (void * addr , size_t size )
437
437
{
438
438
#ifdef _WIN32
439
- return VirtualAlloc (addr , size , MEM_COMMIT | MEM_RESERVE , PAGE_READWRITE );
439
+ void * ptr = VirtualAlloc (addr , size , MEM_COMMIT | MEM_RESERVE , PAGE_READWRITE );
440
+ if (ptr == NULL ) {
441
+ #if ZEND_MM_ERROR
442
+ stderr_last_error ("VirtualAlloc() failed" );
443
+ #endif
444
+ return NULL ;
445
+ }
446
+ ZEND_ASSERT (ptr == addr );
447
+ return ptr ;
440
448
#else
441
449
int flags = MAP_PRIVATE | MAP_ANON ;
442
450
#if defined(MAP_EXCL )
@@ -451,11 +459,7 @@ static void *zend_mm_mmap_fixed(void *addr, size_t size)
451
459
#endif
452
460
return NULL ;
453
461
} else if (ptr != addr ) {
454
- if (munmap (ptr , size ) != 0 ) {
455
- #if ZEND_MM_ERROR
456
- fprintf (stderr , "\nmunmap() failed: [%d] %s\n" , errno , strerror (errno ));
457
- #endif
458
- }
462
+ zend_mm_munmap (ptr , size );
459
463
return NULL ;
460
464
}
461
465
return ptr ;
@@ -1846,11 +1850,7 @@ static zend_mm_heap *zend_mm_init(void)
1846
1850
1847
1851
if (UNEXPECTED (chunk == NULL )) {
1848
1852
#if ZEND_MM_ERROR
1849
- #ifdef _WIN32
1850
- stderr_last_error ("Can't initialize heap" );
1851
- #else
1852
- fprintf (stderr , "\nCan't initialize heap: [%d] %s\n" , errno , strerror (errno ));
1853
- #endif
1853
+ fprintf (stderr , "Can't initialize heap\n" );
1854
1854
#endif
1855
1855
return NULL ;
1856
1856
}
@@ -2978,11 +2978,7 @@ ZEND_API zend_mm_heap *zend_mm_startup_ex(const zend_mm_handlers *handlers, void
2978
2978
chunk = (zend_mm_chunk * )handlers -> chunk_alloc (& tmp_storage , ZEND_MM_CHUNK_SIZE , ZEND_MM_CHUNK_SIZE );
2979
2979
if (UNEXPECTED (chunk == NULL )) {
2980
2980
#if ZEND_MM_ERROR
2981
- #ifdef _WIN32
2982
- stderr_last_error ("Can't initialize heap" );
2983
- #else
2984
- fprintf (stderr , "\nCan't initialize heap: [%d] %s\n" , errno , strerror (errno ));
2985
- #endif
2981
+ fprintf (stderr , "Can't initialize heap\n" );
2986
2982
#endif
2987
2983
return NULL ;
2988
2984
}
@@ -3025,11 +3021,7 @@ ZEND_API zend_mm_heap *zend_mm_startup_ex(const zend_mm_handlers *handlers, void
3025
3021
if (!storage ) {
3026
3022
handlers -> chunk_free (& tmp_storage , chunk , ZEND_MM_CHUNK_SIZE );
3027
3023
#if ZEND_MM_ERROR
3028
- #ifdef _WIN32
3029
- stderr_last_error ("Can't initialize heap" );
3030
- #else
3031
- fprintf (stderr , "\nCan't initialize heap: [%d] %s\n" , errno , strerror (errno ));
3032
- #endif
3024
+ fprintf (stderr , "Can't initialize heap\n" );
3033
3025
#endif
3034
3026
return NULL ;
3035
3027
}
0 commit comments