mirror of
https://github.com/php/php-src.git
synced 2024-11-25 19:05:31 +08:00
Fix internal output buffering
This commit is contained in:
parent
13a97fefeb
commit
20d2432c86
@ -195,6 +195,10 @@ PHPAPI void php_end_ob_buffer(zend_bool send_buffer, zend_bool just_flush)
|
||||
to_be_destroyed_buffer = OG(active_ob_buffer).buffer;
|
||||
|
||||
if (!just_flush) {
|
||||
if (OG(active_ob_buffer).internal_output_handler
|
||||
&& (internal_output_handler_buffer != OG(active_ob_buffer).internal_output_handler_buffer)) {
|
||||
efree(internal_output_handler_buffer);
|
||||
}
|
||||
if (OG(nesting_level)>1) { /* restore previous buffer */
|
||||
php_ob_buffer *ob_buffer_p;
|
||||
|
||||
@ -224,10 +228,6 @@ PHPAPI void php_end_ob_buffer(zend_bool send_buffer, zend_bool just_flush)
|
||||
OG(active_ob_buffer).status |= PHP_OUTPUT_HANDLER_START;
|
||||
OG(php_body_write) = php_b_body_write;
|
||||
}
|
||||
if (OG(active_ob_buffer).internal_output_handler
|
||||
&& (internal_output_handler_buffer != OG(active_ob_buffer).internal_output_handler_buffer)) {
|
||||
efree(internal_output_handler_buffer);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
#include "php.h"
|
||||
|
||||
typedef void (*php_output_handler_func_t)(char *output, uint output_len, char **handled_output, int status);
|
||||
typedef void (*php_output_handler_func_t)(char *output, uint output_len, char **handled_output, int mode);
|
||||
|
||||
PHPAPI void php_output_startup(void);
|
||||
void php_output_register_constants(void);
|
||||
|
@ -195,6 +195,10 @@ PHPAPI void php_end_ob_buffer(zend_bool send_buffer, zend_bool just_flush)
|
||||
to_be_destroyed_buffer = OG(active_ob_buffer).buffer;
|
||||
|
||||
if (!just_flush) {
|
||||
if (OG(active_ob_buffer).internal_output_handler
|
||||
&& (internal_output_handler_buffer != OG(active_ob_buffer).internal_output_handler_buffer)) {
|
||||
efree(internal_output_handler_buffer);
|
||||
}
|
||||
if (OG(nesting_level)>1) { /* restore previous buffer */
|
||||
php_ob_buffer *ob_buffer_p;
|
||||
|
||||
@ -224,10 +228,6 @@ PHPAPI void php_end_ob_buffer(zend_bool send_buffer, zend_bool just_flush)
|
||||
OG(active_ob_buffer).status |= PHP_OUTPUT_HANDLER_START;
|
||||
OG(php_body_write) = php_b_body_write;
|
||||
}
|
||||
if (OG(active_ob_buffer).internal_output_handler
|
||||
&& (internal_output_handler_buffer != OG(active_ob_buffer).internal_output_handler_buffer)) {
|
||||
efree(internal_output_handler_buffer);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -23,7 +23,7 @@
|
||||
|
||||
#include "php.h"
|
||||
|
||||
typedef void (*php_output_handler_func_t)(char *output, uint output_len, char **handled_output, int status);
|
||||
typedef void (*php_output_handler_func_t)(char *output, uint output_len, char **handled_output, int mode);
|
||||
|
||||
PHPAPI void php_output_startup(void);
|
||||
void php_output_register_constants(void);
|
||||
|
Loading…
Reference in New Issue
Block a user