You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
bae53a7fa0
Closes: https://trac.macports.org/ticket/66291 Closes: https://trac.macports.org/ticket/66399
212 lines
9.0 KiB
Diff
212 lines
9.0 KiB
Diff
PHP 8 compatibility.
|
|
https://github.com/BitOne/php-meminfo/commit/829e0061b020ec2b9a6a89c1bf381c6038800ef1
|
|
--- extension/php7/meminfo.c.orig
|
|
+++ extension/php7/meminfo.c
|
|
@@ -16,11 +16,21 @@
|
|
#include "SAPI.h"
|
|
#include "zend_API.h"
|
|
|
|
+#if PHP_VERSION_ID >= 80000
|
|
+ZEND_BEGIN_ARG_INFO_EX(arginfo_meminfo_dump, 0, 0, 1)
|
|
+ ZEND_ARG_INFO(0, output_stream)
|
|
+ZEND_END_ARG_INFO()
|
|
|
|
+const zend_function_entry meminfo_functions[] = {
|
|
+ PHP_FE(meminfo_dump, arginfo_meminfo_dump)
|
|
+ PHP_FE_END
|
|
+};
|
|
+#else
|
|
const zend_function_entry meminfo_functions[] = {
|
|
PHP_FE(meminfo_dump, NULL)
|
|
PHP_FE_END
|
|
};
|
|
+#endif
|
|
|
|
zend_module_entry meminfo_module_entry = {
|
|
STANDARD_MODULE_HEADER,
|
|
@@ -48,28 +59,28 @@ PHP_FUNCTION(meminfo_dump)
|
|
php_stream *stream;
|
|
HashTable visited_items;
|
|
|
|
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zval_stream) == FAILURE) {
|
|
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &zval_stream) == FAILURE) {
|
|
return;
|
|
}
|
|
|
|
zend_hash_init(&visited_items, 1000, NULL, NULL, 0);
|
|
|
|
php_stream_from_zval(stream, zval_stream);
|
|
- php_stream_printf(stream TSRMLS_CC, "{\n");
|
|
+ php_stream_printf(stream, "{\n");
|
|
|
|
- php_stream_printf(stream TSRMLS_CC, " \"header\" : {\n");
|
|
- php_stream_printf(stream TSRMLS_CC, " \"memory_usage\" : %zd,\n", zend_memory_usage(0));
|
|
- php_stream_printf(stream TSRMLS_CC, " \"memory_usage_real\" : %zd,\n", zend_memory_usage(1));
|
|
- php_stream_printf(stream TSRMLS_CC, " \"peak_memory_usage\" : %zd,\n", zend_memory_peak_usage(0));
|
|
- php_stream_printf(stream TSRMLS_CC, " \"peak_memory_usage_real\" : %zd\n", zend_memory_peak_usage(1));
|
|
- php_stream_printf(stream TSRMLS_CC, " },\n");
|
|
+ php_stream_printf(stream, " \"header\" : {\n");
|
|
+ php_stream_printf(stream, " \"memory_usage\" : %zd,\n", zend_memory_usage(0));
|
|
+ php_stream_printf(stream, " \"memory_usage_real\" : %zd,\n", zend_memory_usage(1));
|
|
+ php_stream_printf(stream, " \"peak_memory_usage\" : %zd,\n", zend_memory_peak_usage(0));
|
|
+ php_stream_printf(stream, " \"peak_memory_usage_real\" : %zd\n", zend_memory_peak_usage(1));
|
|
+ php_stream_printf(stream, " },\n");
|
|
|
|
- php_stream_printf(stream TSRMLS_CC, " \"items\": {\n");
|
|
+ php_stream_printf(stream, " \"items\": {\n");
|
|
meminfo_browse_exec_frames(stream, &visited_items, &first_element);
|
|
meminfo_browse_class_static_members(stream, &visited_items, &first_element);
|
|
|
|
- php_stream_printf(stream TSRMLS_CC, "\n }\n");
|
|
- php_stream_printf(stream TSRMLS_CC, "}\n}\n");
|
|
+ php_stream_printf(stream, "\n }\n");
|
|
+ php_stream_printf(stream, "}\n}\n");
|
|
|
|
zend_hash_destroy(&visited_items);
|
|
}
|
|
@@ -225,7 +236,7 @@ void meminfo_hash_dump(php_stream *stream, HashTable *ht, zend_bool is_object, H
|
|
|
|
int first_child = 1;
|
|
|
|
- php_stream_printf(stream TSRMLS_CC, " \"children\" : {\n");
|
|
+ php_stream_printf(stream, " \"children\" : {\n");
|
|
|
|
zend_hash_internal_pointer_reset_ex(ht, &pos);
|
|
while ((zval = zend_hash_get_current_data_ex(ht, &pos)) != NULL) {
|
|
@@ -246,7 +257,7 @@ void meminfo_hash_dump(php_stream *stream, HashTable *ht, zend_bool is_object, H
|
|
}
|
|
|
|
if (!first_child) {
|
|
- php_stream_printf(stream TSRMLS_CC, ",\n");
|
|
+ php_stream_printf(stream, ",\n");
|
|
} else {
|
|
first_child = 0;
|
|
}
|
|
@@ -262,7 +273,7 @@ void meminfo_hash_dump(php_stream *stream, HashTable *ht, zend_bool is_object, H
|
|
|
|
escaped_property_name = meminfo_escape_for_json(property_name);
|
|
|
|
- php_stream_printf(stream TSRMLS_CC, " \"%s\":\"%s\"", ZSTR_VAL(escaped_property_name), zval_id);
|
|
+ php_stream_printf(stream, " \"%s\":\"%s\"", ZSTR_VAL(escaped_property_name), zval_id);
|
|
|
|
zend_string_release(escaped_property_name);
|
|
} else {
|
|
@@ -270,20 +281,20 @@ void meminfo_hash_dump(php_stream *stream, HashTable *ht, zend_bool is_object, H
|
|
|
|
escaped_key = meminfo_escape_for_json(ZSTR_VAL(key));
|
|
|
|
- php_stream_printf(stream TSRMLS_CC, " \"%s\":\"%s\"", ZSTR_VAL(escaped_key), zval_id);
|
|
+ php_stream_printf(stream, " \"%s\":\"%s\"", ZSTR_VAL(escaped_key), zval_id);
|
|
|
|
zend_string_release(escaped_key);
|
|
}
|
|
|
|
break;
|
|
case HASH_KEY_IS_LONG:
|
|
- php_stream_printf(stream TSRMLS_CC, " \"%ld\":\"%s\"", num_key, zval_id);
|
|
+ php_stream_printf(stream, " \"%ld\":\"%s\"", num_key, zval_id);
|
|
break;
|
|
}
|
|
|
|
zend_hash_move_forward_ex(ht, &pos);
|
|
}
|
|
- php_stream_printf(stream TSRMLS_CC, "\n }\n");
|
|
+ php_stream_printf(stream, "\n }\n");
|
|
|
|
zend_hash_internal_pointer_reset_ex(ht, &pos);
|
|
while ((zval = zend_hash_get_current_data_ex(ht, &pos)) != NULL) {
|
|
@@ -315,14 +326,14 @@ void meminfo_zval_dump(php_stream * stream, char * frame_label, zend_string * sy
|
|
}
|
|
|
|
if (! *first_element) {
|
|
- php_stream_printf(stream TSRMLS_CC, "\n },\n");
|
|
+ php_stream_printf(stream, "\n },\n");
|
|
} else {
|
|
*first_element = 0;
|
|
}
|
|
|
|
- php_stream_printf(stream TSRMLS_CC, " \"%s\" : {\n", zval_identifier);
|
|
- php_stream_printf(stream TSRMLS_CC, " \"type\" : \"%s\",\n", zend_get_type_by_const(Z_TYPE_P(zv)));
|
|
- php_stream_printf(stream TSRMLS_CC, " \"size\" : \"%ld\",\n", meminfo_get_element_size(zv));
|
|
+ php_stream_printf(stream, " \"%s\" : {\n", zval_identifier);
|
|
+ php_stream_printf(stream, " \"type\" : \"%s\",\n", zend_get_type_by_const(Z_TYPE_P(zv)));
|
|
+ php_stream_printf(stream, " \"size\" : \"%ld\",\n", meminfo_get_element_size(zv));
|
|
|
|
if (frame_label) {
|
|
zend_string * escaped_frame_label;
|
|
@@ -332,19 +343,19 @@ void meminfo_zval_dump(php_stream * stream, char * frame_label, zend_string * sy
|
|
|
|
escaped_symbol_name = meminfo_escape_for_json(ZSTR_VAL(symbol_name));
|
|
|
|
- php_stream_printf(stream TSRMLS_CC, " \"symbol_name\" : \"%s\",\n", ZSTR_VAL(escaped_symbol_name));
|
|
+ php_stream_printf(stream, " \"symbol_name\" : \"%s\",\n", ZSTR_VAL(escaped_symbol_name));
|
|
|
|
zend_string_release(escaped_symbol_name);
|
|
}
|
|
|
|
escaped_frame_label = meminfo_escape_for_json(frame_label);
|
|
|
|
- php_stream_printf(stream TSRMLS_CC, " \"is_root\" : true,\n");
|
|
- php_stream_printf(stream TSRMLS_CC, " \"frame\" : \"%s\"\n", ZSTR_VAL(escaped_frame_label));
|
|
+ php_stream_printf(stream, " \"is_root\" : true,\n");
|
|
+ php_stream_printf(stream, " \"frame\" : \"%s\"\n", ZSTR_VAL(escaped_frame_label));
|
|
|
|
zend_string_release(escaped_frame_label);
|
|
} else {
|
|
- php_stream_printf(stream TSRMLS_CC, " \"is_root\" : false\n");
|
|
+ php_stream_printf(stream, " \"is_root\" : false\n");
|
|
}
|
|
|
|
if (Z_TYPE_P(zv) == IS_OBJECT) {
|
|
@@ -355,12 +366,12 @@ void meminfo_zval_dump(php_stream * stream, char * frame_label, zend_string * sy
|
|
|
|
escaped_class_name = meminfo_escape_for_json(ZSTR_VAL(Z_OBJCE_P(zv)->name));
|
|
|
|
- php_stream_printf(stream TSRMLS_CC, ",\n");
|
|
- php_stream_printf(stream TSRMLS_CC, " \"class\" : \"%s\",\n", ZSTR_VAL(escaped_class_name));
|
|
+ php_stream_printf(stream, ",\n");
|
|
+ php_stream_printf(stream, " \"class\" : \"%s\",\n", ZSTR_VAL(escaped_class_name));
|
|
|
|
zend_string_release(escaped_class_name);
|
|
|
|
- php_stream_printf(stream TSRMLS_CC, " \"object_handle\" : \"%d\",\n", Z_OBJ_HANDLE_P(zv));
|
|
+ php_stream_printf(stream, " \"object_handle\" : \"%d\",\n", Z_OBJ_HANDLE_P(zv));
|
|
|
|
#if PHP_VERSION_ID >= 70400
|
|
properties = zend_get_properties_for(zv, ZEND_PROP_PURPOSE_DEBUG);
|
|
@@ -382,10 +393,10 @@ void meminfo_zval_dump(php_stream * stream, char * frame_label, zend_string * sy
|
|
#endif
|
|
}
|
|
} else if (Z_TYPE_P(zv) == IS_ARRAY) {
|
|
- php_stream_printf(stream TSRMLS_CC, ",\n");
|
|
+ php_stream_printf(stream, ",\n");
|
|
meminfo_hash_dump(stream, Z_ARRVAL_P(zv), 0, visited_items, first_element);
|
|
} else {
|
|
- php_stream_printf(stream TSRMLS_CC, "\n");
|
|
+ php_stream_printf(stream, "\n");
|
|
}
|
|
}
|
|
|
|
@@ -441,12 +452,21 @@ void meminfo_build_frame_label(char* frame_label, int frame_label_len, zend_exec
|
|
|
|
if (frame->func) {
|
|
func = frame->func;
|
|
+
|
|
+#if PHP_VERSION_ID >= 80000
|
|
+ if (func->common.function_name) {
|
|
+ function_name = ZSTR_VAL(func->common.function_name);
|
|
+ } else {
|
|
+ function_name = NULL;
|
|
+ }
|
|
+#else
|
|
function_name = (func->common.scope &&
|
|
func->common.scope->trait_aliases) ?
|
|
ZSTR_VAL(zend_resolve_method_name(
|
|
(object ? object->ce : func->common.scope), func)) :
|
|
(func->common.function_name ?
|
|
ZSTR_VAL(func->common.function_name) : NULL);
|
|
+#endif
|
|
} else {
|
|
func = NULL;
|
|
function_name = NULL;
|