projects
/
m6w6
/
ext-json_post
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
release 1.0.2
[m6w6/ext-json_post]
/
php_json_post.c
diff --git
a/php_json_post.c
b/php_json_post.c
index fd3165cf182633176106d64f8ee5603db69f8154..c2e5ba69eabb4618b45c5c541a451472d351c959 100644
(file)
--- a/
php_json_post.c
+++ b/
php_json_post.c
@@
-63,13
+63,18
@@
static SAPI_POST_HANDLER_FUNC(php_json_post_handler)
ZVAL_NULL(&tmp);
ZVAL_NULL(&tmp);
- php_json_decode(&tmp, json->val, json->len, JSON_POST_G(flags), PG(max_input_nesting_level));
+ php_json_decode
_ex
(&tmp, json->val, json->len, JSON_POST_G(flags), PG(max_input_nesting_level));
switch (Z_TYPE(tmp)) {
case IS_OBJECT:
case IS_ARRAY:
switch (Z_TYPE(tmp)) {
case IS_OBJECT:
case IS_ARRAY:
- zval_dtor(arg);
- ZVAL_COPY_VALUE(&PG(http_globals)[TRACK_VARS_POST], &tmp);
+ if (zend_hash_num_elements(HASH_OF(&tmp))) {
+ zval_dtor(arg);
+ ZVAL_COPY_VALUE(&PG(http_globals)[TRACK_VARS_POST], &tmp);
+ } else {
+ /* PHP-7.4 optimizes empty array */
+ zval_ptr_dtor(&tmp);
+ }
break;
default:
break;
break;
default:
break;
@@
-136,6
+141,9
@@
PHP_MINIT_FUNCTION(json_post)
{ NULL, 0, NULL, NULL }
};
{ NULL, 0, NULL, NULL }
};
+#ifndef TSRMLS_CC
+# define TSRMLS_CC
+#endif
sapi_register_post_entries(json_post_entries TSRMLS_CC);
ZEND_INIT_MODULE_GLOBALS(json_post, php_json_post_init_globals, NULL);
sapi_register_post_entries(json_post_entries TSRMLS_CC);
ZEND_INIT_MODULE_GLOBALS(json_post, php_json_post_init_globals, NULL);