static PHP_FUNCTION(libxml_set_external_entity_loader)
{
	zend_fcall_info			fci;
	zend_fcall_info_cache	fcc;

	ZEND_PARSE_PARAMETERS_START(1, 1)
		Z_PARAM_FUNC_EX(fci, fcc, 1, 0)
	ZEND_PARSE_PARAMETERS_END();

	_php_libxml_destroy_fci(&LIBXML(entity_loader).fci, &LIBXML(entity_loader).object);

	if (fci.size > 0) { /* argument not null */
		LIBXML(entity_loader).fci = fci;
		Z_ADDREF(fci.function_name);
		if (fci.object != NULL) {
			ZVAL_OBJ(&LIBXML(entity_loader).object, fci.object);
			Z_ADDREF(LIBXML(entity_loader).object);
		}
		LIBXML(entity_loader).fcc = fcc;
	}

	RETURN_TRUE;
}
static PHP_FUNCTION(libxml_set_external_entity_loader)
{
	zend_fcall_info			fci;
	zend_fcall_info_cache	fcc;

	ZEND_PARSE_PARAMETERS_START(1, 1)
		Z_PARAM_FUNC_EX(fci, fcc, 1, 0)
	ZEND_PARSE_PARAMETERS_END();

	_php_libxml_destroy_fci(&LIBXML(entity_loader).fci, &LIBXML(entity_loader).object);

	if (fci.size > 0) {  
		LIBXML(entity_loader).fci = fci;
		Z_ADDREF(fci.function_name);
		if (fci.object != NULL) {
			ZVAL_OBJ(&LIBXML(entity_loader).object, fci.object);
			Z_ADDREF(LIBXML(entity_loader).object);
		}
		LIBXML(entity_loader).fcc = fcc;
	}

	RETURN_TRUE;
}