@@ -58,10 +58,10 @@ PHP_FUNCTION(meminfo_dump)
5858 php_stream_printf (stream TSRMLS_CC , "{\n" );
5959
6060 php_stream_printf (stream TSRMLS_CC , " \"header\" : {\n" );
61- php_stream_printf (stream TSRMLS_CC , " \"memory_usage\" : %d ,\n" , zend_memory_usage (0 ));
62- php_stream_printf (stream TSRMLS_CC , " \"memory_usage_real\" : %d ,\n" , zend_memory_usage (1 ));
63- php_stream_printf (stream TSRMLS_CC , " \"peak_memory_usage\" : %d ,\n" , zend_memory_peak_usage (0 ));
64- php_stream_printf (stream TSRMLS_CC , " \"peak_memory_usage_real\" : %d \n" , zend_memory_peak_usage (1 ));
61+ php_stream_printf (stream TSRMLS_CC , " \"memory_usage\" : %zd ,\n" , zend_memory_usage (0 ));
62+ php_stream_printf (stream TSRMLS_CC , " \"memory_usage_real\" : %zd ,\n" , zend_memory_usage (1 ));
63+ php_stream_printf (stream TSRMLS_CC , " \"peak_memory_usage\" : %zd ,\n" , zend_memory_peak_usage (0 ));
64+ php_stream_printf (stream TSRMLS_CC , " \"peak_memory_usage_real\" : %zd \n" , zend_memory_peak_usage (1 ));
6565 php_stream_printf (stream TSRMLS_CC , " },\n" );
6666
6767 php_stream_printf (stream TSRMLS_CC , " \"items\": {\n" );
@@ -132,7 +132,11 @@ void meminfo_browse_class_static_members(php_stream *stream, HashTable *visited
132132 zend_hash_internal_pointer_reset_ex (CG (class_table ), & ce_pos );
133133 while ((class_entry = zend_hash_get_current_data_ptr_ex (CG (class_table ), & ce_pos )) != NULL ) {
134134
135+ #if PHP_VERSION_ID >= 70400
136+ if (class_entry -> default_static_members_count > 0 && CE_STATIC_MEMBERS (class_entry )) {
137+ #else
135138 if (class_entry -> static_members_table ) {
139+ #endif
136140
137141 HashTable * properties_info = & (class_entry -> properties_info );
138142
@@ -142,7 +146,11 @@ void meminfo_browse_class_static_members(php_stream *stream, HashTable *visited
142146
143147 if (prop_info -> flags & ZEND_ACC_STATIC ) {
144148 snprintf (frame_label , sizeof (frame_label ), "<CLASS_STATIC_MEMBER>" );
149+ #if PHP_VERSION_ID >= 70400
150+ prop = CE_STATIC_MEMBERS (class_entry ) + prop_info -> offset ;
151+ #else
145152 prop = & class_entry -> static_members_table [prop_info -> offset ];
153+ #endif
146154
147155 zend_unmangle_property_name (prop_info -> name , & class_name , & prop_name );
148156
@@ -341,7 +349,6 @@ void meminfo_zval_dump(php_stream * stream, char * frame_label, zend_string * sy
341349
342350 if (Z_TYPE_P (zv ) == IS_OBJECT ) {
343351 HashTable * properties ;
344- int is_temp ;
345352 zend_string * escaped_class_name ;
346353
347354 properties = NULL ;
@@ -355,15 +362,24 @@ void meminfo_zval_dump(php_stream * stream, char * frame_label, zend_string * sy
355362
356363 php_stream_printf (stream TSRMLS_CC , " \"object_handle\" : \"%d\",\n" , Z_OBJ_HANDLE_P (zv ));
357364
365+ #if PHP_VERSION_ID >= 70400
366+ properties = zend_get_properties_for (zv , ZEND_PROP_PURPOSE_DEBUG );
367+ #else
368+ int is_temp ;
358369 properties = Z_OBJDEBUG_P (zv , is_temp );
370+ #endif
359371
360372 if (properties != NULL ) {
361373 meminfo_hash_dump (stream , properties , 1 , visited_items , first_element );
362374
375+ #if PHP_VERSION_ID >= 70400
376+ zend_release_properties (properties );
377+ #else
363378 if (is_temp ) {
364379 zend_hash_destroy (properties );
365380 efree (properties );
366381 }
382+ #endif
367383 }
368384 } else if (Z_TYPE_P (zv ) == IS_ARRAY ) {
369385 php_stream_printf (stream TSRMLS_CC , ",\n" );
0 commit comments