diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2017-12-07 19:24:55 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2017-12-07 19:24:55 +0300 |
| commit | 6a9d2b2190923bfbc7b7caa1462ba95965a1b991 (patch) | |
| tree | 26d1695b07a29a873e5fcd74cd4af47c89454f78 /ext/tidy/tidy.c | |
| parent | c890d469fab27500f0fa1070dccb16b36aa8be76 (diff) | |
| download | php-git-6a9d2b2190923bfbc7b7caa1462ba95965a1b991.tar.gz | |
Cleanup type conversion
Diffstat (limited to 'ext/tidy/tidy.c')
| -rw-r--r-- | ext/tidy/tidy.c | 34 |
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; |
