summaryrefslogtreecommitdiff
path: root/ext/tidy/tidy.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2017-12-07 19:24:55 +0300
committerDmitry Stogov <dmitry@zend.com>2017-12-07 19:24:55 +0300
commit6a9d2b2190923bfbc7b7caa1462ba95965a1b991 (patch)
tree26d1695b07a29a873e5fcd74cd4af47c89454f78 /ext/tidy/tidy.c
parentc890d469fab27500f0fa1070dccb16b36aa8be76 (diff)
downloadphp-git-6a9d2b2190923bfbc7b7caa1462ba95965a1b991.tar.gz
Cleanup type conversion
Diffstat (limited to 'ext/tidy/tidy.c')
-rw-r--r--ext/tidy/tidy.c34
1 files changed, 10 insertions, 24 deletions
diff --git a/ext/tidy/tidy.c b/ext/tidy/tidy.c
index 895a8152d9..63f8c968c3 100644
--- a/ext/tidy/tidy.c
+++ b/ext/tidy/tidy.c
@@ -499,9 +499,8 @@ static void TIDY_CALL php_tidy_panic(ctmbstr msg)
static int _php_tidy_set_tidy_opt(TidyDoc doc, char *optname, zval *value)
{
TidyOption opt = tidyGetOptionByName(doc, optname);
- zval conv;
-
- ZVAL_COPY_VALUE(&conv, value);
+ zend_string *str, *tmp_str;
+ zend_long lval;
if (!opt) {
php_error_docref(NULL, E_NOTICE, "Unknown Tidy Configuration Option '%s'", optname);
@@ -515,37 +514,24 @@ static int _php_tidy_set_tidy_opt(TidyDoc doc, char *optname, zval *value)
switch(tidyOptGetType(opt)) {
case TidyString:
- if (Z_TYPE(conv) != IS_STRING) {
- zval_copy_ctor(&conv);
- convert_to_string(&conv);
- }
- if (tidyOptSetValue(doc, tidyOptGetId(opt), Z_STRVAL(conv))) {
- if (Z_TYPE(conv) != Z_TYPE_P(value)) {
- zval_dtor(&conv);
- }
+ str = zval_get_tmp_string(value, &tmp_str);
+ if (tidyOptSetValue(doc, tidyOptGetId(opt), ZSTR_VAL(str))) {
+ zend_tmp_string_release(tmp_str);
return SUCCESS;
}
- if (Z_TYPE(conv) != Z_TYPE_P(value)) {
- zval_dtor(&conv);
- }
+ zend_tmp_string_release(tmp_str);
break;
case TidyInteger:
- if (Z_TYPE(conv) != IS_LONG) {
- zval_copy_ctor(&conv);
- convert_to_long(&conv);
- }
- if (tidyOptSetInt(doc, tidyOptGetId(opt), Z_LVAL(conv))) {
+ lval = zval_get_long(value);
+ if (tidyOptSetInt(doc, tidyOptGetId(opt), lval)) {
return SUCCESS;
}
break;
case TidyBoolean:
- if (Z_TYPE(conv) != IS_LONG) {
- zval_copy_ctor(&conv);
- convert_to_long(&conv);
- }
- if (tidyOptSetBool(doc, tidyOptGetId(opt), Z_LVAL(conv))) {
+ lval = zval_get_long(value);
+ if (tidyOptSetBool(doc, tidyOptGetId(opt), lval)) {
return SUCCESS;
}
break;