@@ -3083,8 +3083,9 @@ ZEND_API void zend_mm_get_custom_handlers(zend_mm_heap *heap,
3083
3083
3084
3084
/*
3085
3085
* Use this function to register observers to the ZendMM.
3086
- * This function operates on the thread local heap and is meant to be called in
3087
- * RINIT. Calling it in MINIT works only in NTS builds, but not in ZTS.
3086
+ * This function operates on the thread local heap and is meant to be called
3087
+ * during the request lifetime. Calling it in MINIT works only in NTS builds,
3088
+ * but not in ZTS.
3088
3089
*/
3089
3090
ZEND_API zend_mm_observer * zend_mm_observer_register (
3090
3091
zend_mm_heap * heap ,
@@ -3093,9 +3094,10 @@ ZEND_API zend_mm_observer* zend_mm_observer_register(
3093
3094
void (* realloc )(void * , size_t , void * ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC )
3094
3095
) {
3095
3096
#if ZEND_MM_CUSTOM
3096
- if (!heap && !( heap = AG ( mm_heap )) ) {
3097
- return false ;
3097
+ if (!heap ) {
3098
+ heap = AG ( mm_heap ) ;
3098
3099
}
3100
+ ZEND_ASSERT (heap );
3099
3101
3100
3102
zend_mm_observer * node = pemalloc (sizeof (zend_mm_observer ), 1 );
3101
3103
node -> malloc = malloc ;
@@ -3130,17 +3132,17 @@ ZEND_API zend_mm_observer* zend_mm_observer_register(
3130
3132
ZEND_API bool zend_mm_observer_unregister (zend_mm_heap * heap , zend_mm_observer * observer )
3131
3133
{
3132
3134
#if ZEND_MM_CUSTOM
3133
- if (!heap && !( heap = AG ( mm_heap )) ) {
3134
- return false ;
3135
+ if (!heap ) {
3136
+ heap = AG ( mm_heap ) ;
3135
3137
}
3138
+ ZEND_ASSERT (heap );
3136
3139
3137
3140
zend_mm_observer * current = heap -> observers , * prev = NULL ;
3138
3141
3139
3142
if (current == observer ) {
3140
3143
heap -> observers = observer -> next ;
3141
3144
pefree (observer , 1 );
3142
- if (!heap -> observers )
3143
- {
3145
+ if (!heap -> observers ) {
3144
3146
// this was the one and only installed observer
3145
3147
heap -> use_custom_heap &= ~ZEND_MM_CUSTOM_HEAP_OBSERVED ;
3146
3148
}
@@ -3153,8 +3155,9 @@ ZEND_API bool zend_mm_observer_unregister(zend_mm_heap *heap, zend_mm_observer *
3153
3155
}
3154
3156
3155
3157
// did not find observer or NULL was given
3156
- if (current == NULL )
3158
+ if (current == NULL ) {
3157
3159
return false;
3160
+ }
3158
3161
3159
3162
prev -> next = current -> next ;
3160
3163
pefree (observer , 1 );
@@ -3171,9 +3174,10 @@ ZEND_API bool zend_mm_observer_unregister(zend_mm_heap *heap, zend_mm_observer *
3171
3174
void zend_mm_observers_shutdown (zend_mm_heap * heap )
3172
3175
{
3173
3176
#if ZEND_MM_CUSTOM
3174
- if (!heap && !( heap = AG ( mm_heap )) ) {
3175
- return ;
3177
+ if (!heap ) {
3178
+ heap = AG ( mm_heap ) ;
3176
3179
}
3180
+ ZEND_ASSERT (heap );
3177
3181
zend_mm_observer * current = heap -> observers ;
3178
3182
zend_mm_observer * next = NULL ;
3179
3183
while (current != NULL ) {
0 commit comments