if (Z_TYPE_P(data) == IS_STRING) {
ret = xmlNewTextLen(BAD_CAST(Z_STRVAL_P(data)), Z_STRLEN_P(data));
} else {
- zval tmp;
-
- ZVAL_STR(&tmp, zval_get_string(data));
- ret = xmlNewTextLen(BAD_CAST(Z_STRVAL(tmp)), Z_STRLEN(tmp));
- zval_dtor(&tmp);
+ zend_string *tmp = zval_get_string(data);
+ ret = xmlNewTextLen(BAD_CAST(tmp->val), tmp->len);
+ zend_string_release(tmp);
}
ret->name = xmlStringTextNoenc;
*target = (char)(int)Z_DVAL_P(needle);
return SUCCESS;
case IS_OBJECT:
- {
- zval holder;
-
- ZVAL_LONG(&holder, zval_get_long(needle));
-
- *target = (char)Z_LVAL(holder);
- return SUCCESS;
- }
- default: {
+ *target = (char) zval_get_long(needle);
+ return SUCCESS;
+ default:
php_error_docref(NULL TSRMLS_CC, E_WARNING, "needle is not a string or an integer");
return FAILURE;
- }
}
}
/* }}} */