xmlNodePtr node;
xmlAttrPtr attr;
int counter = 0;
+ zval tmp_zv;
+
+ if (Z_TYPE_P(member) != IS_STRING) {
+ tmp_zv = *member;
+ zval_copy_ctor(&tmp_zv);
+ member = &tmp_zv;
+ convert_to_string(member);
+ }
MAKE_STD_ZVAL(return_value);
ZVAL_NULL(return_value);
return_value->refcount = 0;
return_value->is_ref = 0;
+ if (member == &tmp_zv) {
+ zval_dtor(&tmp_zv);
+ }
+
return return_value;
}
/* }}} */
*/
static zval *sxe_dimension_read(zval *object, zval *offset TSRMLS_DC)
{
- convert_to_string_ex(&offset);
return sxe_prop_dim_read(object, offset, 0, 1, 0 TSRMLS_CC);
}
/* }}} */
xmlAttrPtr attr = NULL;
int counter = 0;
int is_attr = 0;
+ zval tmp_zv;
+
+ if (Z_TYPE_P(member) != IS_STRING) {
+ tmp_zv = *member;
+ zval_copy_ctor(&tmp_zv);
+ member = &tmp_zv;
+ convert_to_string(member);
+ }
name = Z_STRVAL_P(member);
sxe = php_sxe_fetch_object(object TSRMLS_CC);
php_error(E_WARNING, "Cannot create new atrribute\n");
}
}
+
+ if (member == &tmp_zv) {
+ zval_dtor(&tmp_zv);
+ }
}
/* }}} */
*/
static void sxe_dimension_write(zval *object, zval *offset, zval *value TSRMLS_DC)
{
- convert_to_string_ex(&offset);
sxe_prop_dim_write(object, offset, value, 0, 1 TSRMLS_CC);
}
/* }}} */
xmlNodePtr nnext;
xmlAttrPtr attr;
xmlAttrPtr anext;
+ zval tmp_zv;
+
+ if (Z_TYPE_P(member) != IS_STRING) {
+ tmp_zv = *member;
+ zval_copy_ctor(&tmp_zv);
+ member = &tmp_zv;
+ convert_to_string(member);
+ }
sxe = php_sxe_fetch_object(object TSRMLS_CC);
}
}
}
+
+ if (member == &tmp_zv) {
+ zval_dtor(&tmp_zv);
+ }
}
/* }}} */
*/
static void sxe_dimension_delete(zval *object, zval *offset TSRMLS_DC)
{
- convert_to_string_ex(&offset);
sxe_prop_dim_delete(object, offset, 1, 1 TSRMLS_CC);
}
/* }}} */
simplexml_ce_schema_validate(INTERNAL_FUNCTION_PARAMETERS, int type)
{
php_sxe_object *sxe;
- zval *source;
+ zval **source;
xmlSchemaParserCtxtPtr parser;
xmlSchemaPtr sptr;
xmlSchemaValidCtxtPtr vptr;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &source) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", source) == FAILURE) {
return;
}
switch (type) {
case SCHEMA_FILE:
- convert_to_string_ex(&source);
- parser = xmlSchemaNewParserCtxt(Z_STRVAL_P(source));
+ convert_to_string_ex(source);
+ parser = xmlSchemaNewParserCtxt(Z_STRVAL_PP(source));
if (parser == NULL) {
- php_error_docref1(NULL TSRMLS_CC, Z_STRVAL_P(source), E_WARNING, "Unable to load XML Schema file");
+ php_error_docref1(NULL TSRMLS_CC, Z_STRVAL_PP(source), E_WARNING, "Unable to load XML Schema file");
RETURN_FALSE;
}
sptr = xmlSchemaParse(parser);
break;
case SCHEMA_BLOB:
- convert_to_string_ex(&source);
- parser = xmlSchemaNewMemParserCtxt(Z_STRVAL_P(source), Z_STRLEN_P(source));
+ convert_to_string_ex(source);
+ parser = xmlSchemaNewMemParserCtxt(Z_STRVAL_PP(source), Z_STRLEN_PP(source));
sptr = xmlSchemaParse(parser);
break;
default: