diff --git a/ext/tidy/tidy.c b/ext/tidy/tidy.c index 63820d1a3075..8cf45dc7fcbb 100644 --- a/ext/tidy/tidy.c +++ b/ext/tidy/tidy.c @@ -473,8 +473,7 @@ static zend_result tidy_node_cast_handler(zend_object *in, zval *out, int type) case IS_STRING: obj = php_tidy_fetch_object(in); tidyBufInit(&buf); - if (obj->ptdoc) { - tidyNodeGetText(obj->ptdoc->doc, obj->node, &buf); + if (obj->ptdoc && tidyNodeGetText(obj->ptdoc->doc, obj->node, &buf)) { ZVAL_STRINGL(out, (const char *) buf.bp, buf.size-1); } else { ZVAL_EMPTY_STRING(out); @@ -530,7 +529,7 @@ static void tidy_add_node_default_properties(PHPTidyObj *obj) const char *name; tidyBufInit(&buf); - tidyNodeGetText(obj->ptdoc->doc, obj->node, &buf); + (void) tidyNodeGetText(obj->ptdoc->doc, obj->node, &buf); zend_update_property_stringl( tidy_ce_node, @@ -616,12 +615,14 @@ static void tidy_add_node_default_properties(PHPTidyObj *obj) do { const char *attr_name = tidyAttrName(tempattr); if (attr_name) { + zval value; const char *val = tidyAttrValue(tempattr); if (val) { - add_assoc_string(&attribute, attr_name, val); + ZVAL_STRING_FAST(&value, val); } else { - add_assoc_str(&attribute, attr_name, zend_empty_string); + ZVAL_EMPTY_STRING(&value); } + zend_hash_str_add_new(Z_ARRVAL(attribute), attr_name, strlen(attr_name), &value); } } while((tempattr = tidyAttrNext(tempattr))); } else {