andrei Fri Feb 10 00:23:29 2006 UTC
Modified files:
/php-src/ext/unicode unicode_iterators.c
Log:
Make ReverseTextIterator a separate class.
http://cvs.php.net/viewcvs.cgi/php-src/ext/unicode/unicode_iterators.c?r1=1.17&r2=1.18&diff_format=u
Index: php-src/ext/unicode/unicode_iterators.c
diff -u php-src/ext/unicode/unicode_iterators.c:1.17
php-src/ext/unicode/unicode_iterators.c:1.18
--- php-src/ext/unicode/unicode_iterators.c:1.17 Wed Feb 8 00:16:50 2006
+++ php-src/ext/unicode/unicode_iterators.c Fri Feb 10 00:23:29 2006
@@ -14,7 +14,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: unicode_iterators.c,v 1.17 2006/02/08 00:16:50 andrei Exp $ */
+/* $Id: unicode_iterators.c,v 1.18 2006/02/10 00:23:29 andrei Exp $ */
/*
* TODO
@@ -78,6 +78,7 @@
PHPAPI zend_class_entry* text_iterator_aggregate_ce;
PHPAPI zend_class_entry* text_iterator_ce;
+PHPAPI zend_class_entry* rev_text_iterator_ce;
/* Code unit ops */
@@ -433,6 +434,10 @@
intern->flags = flags;
}
+ if (Z_OBJCE_P(this_ptr) == U_CLASS_ENTRY(rev_text_iterator_ce)) {
+ intern->flags |= ITER_REVERSE;
+ }
+
iter_ops[intern->type]->rewind(intern TSRMLS_CC);
}
@@ -495,13 +500,19 @@
text_iterator_ce = zend_register_internal_class(&ce TSRMLS_CC);
text_iterator_ce->create_object = text_iterator_new;
text_iterator_ce->get_iterator = text_iter_get_iterator;
+ text_iterator_ce->ce_flags |= ZEND_ACC_FINAL_CLASS;
zend_class_implements(text_iterator_ce TSRMLS_CC, 1,
zend_ce_traversable);
+ INIT_CLASS_ENTRY(ce, "ReverseTextIterator", text_iterator_funcs);
+ rev_text_iterator_ce = zend_register_internal_class(&ce TSRMLS_CC);
+ rev_text_iterator_ce->create_object = text_iterator_new;
+ rev_text_iterator_ce->get_iterator = text_iter_get_iterator;
+ rev_text_iterator_ce->ce_flags |= ZEND_ACC_FINAL_CLASS;
+ zend_class_implements(rev_text_iterator_ce TSRMLS_CC, 1,
zend_ce_traversable);
+
zend_declare_class_constant_long(text_iterator_ce, "CODE_UNIT",
sizeof("CODE_UNIT")-1, ITER_CODE_UNIT TSRMLS_CC);
zend_declare_class_constant_long(text_iterator_ce, "CODE_POINT",
sizeof("CODE_POINT")-1, ITER_CODE_POINT TSRMLS_CC);
zend_declare_class_constant_long(text_iterator_ce, "COMB_SEQUENCE",
sizeof("COMB_SEQUENCE")-1, ITER_COMB_SEQUENCE TSRMLS_CC);
-
- zend_declare_class_constant_long(text_iterator_ce, "REVERSE",
sizeof("REVERSE")-1, ITER_REVERSE TSRMLS_CC);
}
/*
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php