mirror of
https://github.com/php/php-src.git
synced 2025-08-16 14:08:47 +02:00
Fix memory leaks
This commit is contained in:
parent
cc011660e7
commit
ea72aabfe2
2 changed files with 697 additions and 681 deletions
|
@ -52,10 +52,7 @@ extern zend_module_entry tidy_module_entry;
|
||||||
#define TIDY_RV_FALSE(__t) __t->type = IS_BOOL; __t->value.lval = FALSE
|
#define TIDY_RV_FALSE(__t) __t->type = IS_BOOL; __t->value.lval = FALSE
|
||||||
#define TIDY_RV_TRUE(__t) __t->type = IS_BOOL; __t->value.lval = TRUE
|
#define TIDY_RV_TRUE(__t) __t->type = IS_BOOL; __t->value.lval = TRUE
|
||||||
|
|
||||||
#define TIDY_IS_TN_PROP(_p) zend_hash_exists(TIDY_G(tn_prop), #_p, strlen(#_p))
|
#define REMOVE_NEWLINE(_z) _z->value.str.val[_z->value.str.len-1] = '\0'; _z->value.str.len--;
|
||||||
#define TIDY_IS_TA_PROP(_p) zend_hash_exists(TIDY_G(ta_prop), #_p, strlen(#_p))
|
|
||||||
|
|
||||||
#define REMOVE_NEWLINE(_z) _z->value.str.val[_z->value.str.len-1] = '\0';
|
|
||||||
|
|
||||||
#define TIDY_TAG_CONST(tag) REGISTER_LONG_CONSTANT("TIDY_TAG_" #tag, TidyTag_##tag, CONST_CS | CONST_PERSISTENT)
|
#define TIDY_TAG_CONST(tag) REGISTER_LONG_CONSTANT("TIDY_TAG_" #tag, TidyTag_##tag, CONST_CS | CONST_PERSISTENT)
|
||||||
#define TIDY_ATTR_CONST(attr) REGISTER_LONG_CONSTANT("TIDY_ATTR_" #attr, TidyAttr_##attr, CONST_CS | CONST_PERSISTENT)
|
#define TIDY_ATTR_CONST(attr) REGISTER_LONG_CONSTANT("TIDY_ATTR_" #attr, TidyAttr_##attr, CONST_CS | CONST_PERSISTENT)
|
||||||
|
@ -82,7 +79,7 @@ struct _PHPTidyObj {
|
||||||
TidyAttr attr;
|
TidyAttr attr;
|
||||||
PHPTidyDoc *tdoc;
|
PHPTidyDoc *tdoc;
|
||||||
unsigned int type;
|
unsigned int type;
|
||||||
zval *obj_parent;
|
PHPTidyObj *parent;
|
||||||
unsigned int refcount;
|
unsigned int refcount;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -121,38 +118,38 @@ PHP_FUNCTION(tidy_get_html);
|
||||||
PHP_FUNCTION(tidy_get_head);
|
PHP_FUNCTION(tidy_get_head);
|
||||||
PHP_FUNCTION(tidy_get_body);
|
PHP_FUNCTION(tidy_get_body);
|
||||||
|
|
||||||
static void php_tidy_obj_clone(void *, void ** TSRMLS_DC);
|
void php_tidy_obj_clone(void *, void ** TSRMLS_DC);
|
||||||
static void php_tidy_obj_dtor(void *, zend_object_handle TSRMLS_DC);
|
void php_tidy_obj_dtor(void *, zend_object_handle TSRMLS_DC);
|
||||||
|
|
||||||
zend_object_value php_tidy_create_obj(zend_class_entry * TSRMLS_DC);
|
zend_object_value php_tidy_create_obj(zend_class_entry * TSRMLS_DC);
|
||||||
static zend_object_value php_tidy_register_object(PHPTidyObj *intern TSRMLS_DC);
|
zend_object_value php_tidy_register_object(PHPTidyObj *intern TSRMLS_DC);
|
||||||
|
zval *_php_tidy_create_obj_zval(unsigned int objtype,
|
||||||
|
PHPTidyObj *parent,
|
||||||
|
void *data
|
||||||
|
TSRMLS_DC);
|
||||||
|
|
||||||
static zval *_php_tidy_create_obj_zval(unsigned int objtype,
|
void _php_tidy_create_obj(zval *return_value,
|
||||||
PHPTidyObj *parent,
|
unsigned int objtype,
|
||||||
void *data
|
PHPTidyObj *parent,
|
||||||
TSRMLS_DC);
|
void *data
|
||||||
static void _php_tidy_create_obj(zval *return_value,
|
TSRMLS_DC);
|
||||||
unsigned int objtype,
|
|
||||||
PHPTidyObj *parent,
|
|
||||||
void *data
|
|
||||||
TSRMLS_DC);
|
|
||||||
/* object handlers */
|
/* object handlers */
|
||||||
static zval * tidy_property_read(zval *object, zval *member, zend_bool silent TSRMLS_DC);
|
zval * tidy_property_read(zval *object, zval *member, zend_bool silent TSRMLS_DC);
|
||||||
static void tidy_property_write(zval *obj, zval *member, zval *value TSRMLS_DC);
|
void tidy_property_write(zval *obj, zval *member, zval *value TSRMLS_DC);
|
||||||
static zval ** tidy_property_get_ptr(zval *obj, zval *member TSRMLS_DC);
|
zval ** tidy_property_get_ptr(zval *obj, zval *member TSRMLS_DC);
|
||||||
static int tidy_property_exists(zval *object, zval *member, int check_empty TSRMLS_DC);
|
int tidy_property_exists(zval *object, zval *member, int check_empty TSRMLS_DC);
|
||||||
static void tidy_property_delete(zval *obj, zval *member TSRMLS_DC);
|
void tidy_property_delete(zval *obj, zval *member TSRMLS_DC);
|
||||||
static HashTable * tidy_get_properties(zval *object TSRMLS_DC);
|
HashTable * tidy_get_properties(zval *object TSRMLS_DC);
|
||||||
static union _zend_function * tidy_get_method(zval *obj, char *method, int method_len TSRMLS_DC);
|
union _zend_function * tidy_get_method(zval *obj, char *method, int method_len TSRMLS_DC);
|
||||||
static int tidy_call_method(char *method, INTERNAL_FUNCTION_PARAMETERS);
|
int tidy_call_method(char *method, INTERNAL_FUNCTION_PARAMETERS);
|
||||||
static union _zend_function * tidy_get_constructor(zval *obj TSRMLS_DC);
|
union _zend_function * tidy_get_constructor(zval *obj TSRMLS_DC);
|
||||||
static zend_class_entry * tidy_get_class_entry(zval *obj TSRMLS_DC);
|
zend_class_entry * tidy_get_class_entry(zval *obj TSRMLS_DC);
|
||||||
static int tidy_get_class_name(zval *obj, char **class_name, zend_uint *name_len, int parent TSRMLS_DC);
|
int tidy_get_class_name(zval *obj, char **class_name, zend_uint *name_len, int parent TSRMLS_DC);
|
||||||
static int tidy_objects_compare(zval *obj_one, zval *obj_two TSRMLS_DC);
|
int tidy_objects_compare(zval *obj_one, zval *obj_two TSRMLS_DC);
|
||||||
static void tidy_object_cast(zval *readobj, zval *writeobj, int type, int should_free TSRMLS_DC);
|
void tidy_object_cast(zval *readobj, zval *writeobj, int type, int should_free TSRMLS_DC);
|
||||||
static void tidy_write_dim(zval *object, zval *offset, zval *value TSRMLS_DC);
|
void tidy_write_dim(zval *object, zval *offset, zval *value TSRMLS_DC);
|
||||||
static void tidy_del_dim(zval *object, zval *offset TSRMLS_DC);
|
void tidy_del_dim(zval *object, zval *offset TSRMLS_DC);
|
||||||
static zval *tidy_read_dim(zval *object, zval *offset TSRMLS_DC);
|
zval *tidy_read_dim(zval *object, zval *offset TSRMLS_DC);
|
||||||
|
|
||||||
zend_bool _php_tidy_attr_call_method(char *method, INTERNAL_FUNCTION_PARAMETERS);
|
zend_bool _php_tidy_attr_call_method(char *method, INTERNAL_FUNCTION_PARAMETERS);
|
||||||
zend_bool _php_tidy_node_call_method(char *method, INTERNAL_FUNCTION_PARAMETERS);
|
zend_bool _php_tidy_node_call_method(char *method, INTERNAL_FUNCTION_PARAMETERS);
|
||||||
|
|
1315
ext/tidy/tidy.c
1315
ext/tidy/tidy.c
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue