projects
/
m6w6
/
ext-apfd
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
|
github
raw
|
patch
|
inline
| side by side (parent:
4b45bc6
)
PHP-7.2 compatibility
author
Michael Wallner
<mike@php.net>
Mon, 4 Sep 2017 10:23:54 +0000
(12:23 +0200)
committer
Michael Wallner
<mike@php.net>
Mon, 4 Sep 2017 10:23:54 +0000
(12:23 +0200)
php_apfd.c
patch
|
blob
|
history
diff --git
a/php_apfd.c
b/php_apfd.c
index 0e1d749d5680fd9fc8c3d957702e83871b2d828e..da178eb7b3ab65bd0a9f77e1e9136666bd97f730 100644
(file)
--- a/
php_apfd.c
+++ b/
php_apfd.c
@@
-23,28
+23,48
@@
#if PHP_VERSION_ID >= 70000
#if PHP_VERSION_ID >= 70000
+struct apfd {
+ zval post;
+ zval files;
+};
+
#define APFD_SG(t) &PG(http_globals)[t]
static inline sapi_post_entry *apfd_get_post_entry(const char *ct_str, size_t ct_len)
{
return zend_hash_str_find_ptr(&SG(known_post_content_types), ct_str, ct_len);
}
#define APFD_SG(t) &PG(http_globals)[t]
static inline sapi_post_entry *apfd_get_post_entry(const char *ct_str, size_t ct_len)
{
return zend_hash_str_find_ptr(&SG(known_post_content_types), ct_str, ct_len);
}
-static inline
zval *apfd_backup_files(voi
d)
+static inline
void apfd_backup(struct apfd *apf
d)
{
if (SG(rfc1867_uploaded_files)) {
destroy_uploaded_files_hash();
}
{
if (SG(rfc1867_uploaded_files)) {
destroy_uploaded_files_hash();
}
- return NULL;
+
+ zval_ptr_dtor(APFD_SG(TRACK_VARS_POST));
+ array_init(&apfd->post);
+ ZVAL_COPY_VALUE(APFD_SG(TRACK_VARS_POST), &apfd->post);
+
+ zval_ptr_dtor(APFD_SG(TRACK_VARS_FILES));
+ array_init(&apfd->files);
+ ZVAL_COPY_VALUE(APFD_SG(TRACK_VARS_FILES), &apfd->files);
}
}
-static inline void apfd_update
_files(zval *files
)
+static inline void apfd_update
(struct apfd *apfd
)
{
{
- Z_TRY_ADDREF_P(APFD_SG(TRACK_VARS_FILES));
+ zend_hash_str_update(&EG(symbol_table), "_POST", sizeof("_POST")-1, APFD_SG(TRACK_VARS_POST));
+ Z_TRY_ADDREF_P(APFD_SG(TRACK_VARS_POST));
+
zend_hash_str_update(&EG(symbol_table), "_FILES", sizeof("_FILES")-1, APFD_SG(TRACK_VARS_FILES));
zend_hash_str_update(&EG(symbol_table), "_FILES", sizeof("_FILES")-1, APFD_SG(TRACK_VARS_FILES));
+ Z_TRY_ADDREF_P(APFD_SG(TRACK_VARS_FILES));
}
#else
}
#else
+struct apfd {
+ zval *post;
+ zval *files;
+};
+
#define APFD_SG(t) PG(http_globals)[t]
static inline sapi_post_entry *apfd_get_post_entry(const char *ct_str, size_t ct_len TSRMLS_DC)
{
#define APFD_SG(t) PG(http_globals)[t]
static inline sapi_post_entry *apfd_get_post_entry(const char *ct_str, size_t ct_len TSRMLS_DC)
{
@@
-56,18
+76,19
@@
static inline sapi_post_entry *apfd_get_post_entry(const char *ct_str, size_t ct
return NULL;
}
return NULL;
}
-static inline
zval *apfd_backup_files(TSRMLS_D
)
+static inline
void apfd_backup(struct apfd *apfd TSRMLS_DC
)
{
{
- return APFD_SG(TRACK_VARS_FILES);
+ apfd->post = APFD_SG(TRACK_VARS_POST);
+ apfd->files = APFD_SG(TRACK_VARS_FILES);
}
}
-static inline void apfd_update
_files(zval *files
TSRMLS_DC)
+static inline void apfd_update
(struct apfd *apfd
TSRMLS_DC)
{
{
- if (files != APFD_SG(TRACK_VARS_FILES) && APFD_SG(TRACK_VARS_FILES)) {
+ if (
apfd->
files != APFD_SG(TRACK_VARS_FILES) && APFD_SG(TRACK_VARS_FILES)) {
Z_ADDREF_P(APFD_SG(TRACK_VARS_FILES));
zend_hash_update(&EG(symbol_table), "_FILES", sizeof("_FILES"), &APFD_SG(TRACK_VARS_FILES), sizeof(zval *), NULL);
Z_ADDREF_P(APFD_SG(TRACK_VARS_FILES));
zend_hash_update(&EG(symbol_table), "_FILES", sizeof("_FILES"), &APFD_SG(TRACK_VARS_FILES), sizeof(zval *), NULL);
- if (files) {
- zval_ptr_dtor(&files);
+ if (
apfd->
files) {
+ zval_ptr_dtor(&
apfd->
files);
}
}
}
}
}
}
@@
-85,14
+106,14
@@
PHP_RINIT_FUNCTION(apfd)
ct_str = zend_str_tolower_dup(ct_dup, ct_end);
if ((post_entry = apfd_get_post_entry(ct_str, ct_end TSRMLS_CC))) {
ct_str = zend_str_tolower_dup(ct_dup, ct_end);
if ((post_entry = apfd_get_post_entry(ct_str, ct_end TSRMLS_CC))) {
- zval *files = apfd_backup_files(TSRMLS_C);
+ struct apfd apfd;
+
+ apfd_backup(&apfd TSRMLS_CC);
- if (post_entry) {
- SG(request_info).post_entry = post_entry;
+ SG(request_info).post_entry = post_entry;
- if (post_entry->post_reader) {
- post_entry->post_reader(TSRMLS_C);
- }
+ if (post_entry->post_reader) {
+ post_entry->post_reader(TSRMLS_C);
}
if (sapi_module.default_post_reader) {
}
if (sapi_module.default_post_reader) {
@@
-101,10
+122,7
@@
PHP_RINIT_FUNCTION(apfd)
sapi_handle_post(APFD_SG(TRACK_VARS_POST) TSRMLS_CC);
sapi_handle_post(APFD_SG(TRACK_VARS_POST) TSRMLS_CC);
- /*
- * the rfc1867 handler is an awkward buddy
- */
- apfd_update_files(files TSRMLS_CC);
+ apfd_update(&apfd TSRMLS_CC);
}
efree(ct_str);
}
efree(ct_str);