bjori           Sun Jun 25 22:51:55 2006 UTC

  Added files:                 
    /php-src/ext/standard/tests/filters php_user_filter_01.phpt 
                                        php_user_filter_02.phpt 
                                        php_user_filter_03.phpt 

  Modified files:              
    /php-src/ext/standard       user_filters.c 
  Log:
  Added argument info
  (forces user-space filters to register correct arguments)
  Added tests
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/user_filters.c?r1=1.37&r2=1.38&diff_format=u
Index: php-src/ext/standard/user_filters.c
diff -u php-src/ext/standard/user_filters.c:1.37 
php-src/ext/standard/user_filters.c:1.38
--- php-src/ext/standard/user_filters.c:1.37    Mon Mar 13 04:40:11 2006
+++ php-src/ext/standard/user_filters.c Sun Jun 25 22:51:55 2006
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: user_filters.c,v 1.37 2006/03/13 04:40:11 pollita Exp $ */
+/* $Id: user_filters.c,v 1.38 2006/06/25 22:51:55 bjori Exp $ */
 
 #include "php.h"
 #include "php_globals.h"
@@ -54,11 +54,26 @@
 PHP_FUNCTION(user_filter_nop)
 {
 }
+static
+ZEND_BEGIN_ARG_INFO(arginfo_php_user_filter_filter, 0)
+       ZEND_ARG_INFO(0, in)
+       ZEND_ARG_INFO(0, out)
+       ZEND_ARG_INFO(1, consumed)
+       ZEND_ARG_INFO(0, closing)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO(arginfo_php_user_filter_onCreate, 0)
+ZEND_END_ARG_INFO()
+
+static
+ZEND_BEGIN_ARG_INFO(arginfo_php_user_filter_onClose, 0)
+ZEND_END_ARG_INFO()
 
 static zend_function_entry user_filter_class_funcs[] = {
-       PHP_NAMED_FE(filter,    PHP_FN(user_filter_nop),                NULL)
-       PHP_NAMED_FE(onCreate,  PHP_FN(user_filter_nop),                NULL)
-       PHP_NAMED_FE(onClose,   PHP_FN(user_filter_nop),                NULL)
+       PHP_NAMED_FE(filter,    PHP_FN(user_filter_nop),                
arginfo_php_user_filter_filter)
+       PHP_NAMED_FE(onCreate,  PHP_FN(user_filter_nop),                
arginfo_php_user_filter_onCreate)
+       PHP_NAMED_FE(onClose,   PHP_FN(user_filter_nop),                
arginfo_php_user_filter_onClose)
        { NULL, NULL, NULL }
 };
 
@@ -66,11 +81,14 @@
 
 PHP_MINIT_FUNCTION(user_filters)
 {
+       zend_class_entry *php_user_filter;
        /* init the filter class ancestor */
        INIT_CLASS_ENTRY(user_filter_class_entry, "php_user_filter", 
user_filter_class_funcs);
-       if (NULL == zend_register_internal_class(&user_filter_class_entry 
TSRMLS_CC)) {
+       if ((php_user_filter = 
zend_register_internal_class(&user_filter_class_entry TSRMLS_CC)) == NULL) {
                return FAILURE;
        }
+       zend_declare_property_string(php_user_filter, "filtername", 
sizeof("filtername")-1, "", ZEND_ACC_PUBLIC TSRMLS_CC);
+       zend_declare_property_string(php_user_filter, "params", 
sizeof("params")-1, "", ZEND_ACC_PUBLIC TSRMLS_CC);
 
        /* init the filter resource; it has no dtor, as streams will always 
clean it up
         * at the correct time */

http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/filters/php_user_filter_01.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/filters/php_user_filter_01.phpt
+++ php-src/ext/standard/tests/filters/php_user_filter_01.phpt
--TEST--
class php_user_filter#1
--FILE--
<?php
class foo extends php_user_filter {
    function filter($in, $out, &$consumed, $closing) {}
    function onCreate() {}
    function onClose() {}
}
class bar extends php_user_filter {
    function filter($in, $out, &$consumed) {}
    function onCreate() {}
    function onClose() {}
}
?>
--EXPECTF--
Fatal error: Declaration of bar::filter() must be compatible with that of 
php_user_filter::filter() in %s on line %d

http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/filters/php_user_filter_02.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/filters/php_user_filter_02.phpt
+++ php-src/ext/standard/tests/filters/php_user_filter_02.phpt
--TEST--
class php_user_filter#2
--FILE--
<?php
class foo extends php_user_filter {
    function filter($in, $out, $consumed, $closing) {}
    function onCreate() {}
    function onClose() {}
}
?>
--EXPECTF--
Fatal error: Declaration of foo::filter() must be compatible with that of 
php_user_filter::filter() in %s on line %d

http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/filters/php_user_filter_03.phpt?view=markup&rev=1.1
Index: php-src/ext/standard/tests/filters/php_user_filter_03.phpt
+++ php-src/ext/standard/tests/filters/php_user_filter_03.phpt
--TEST--
class php_user_filter#3
--FILE--
<?php
class foo extends php_user_filter {
    function filter($in, $out, &$consumed, $closing) {}
    function onCreate($var) {}
    function onClose() {}
}
?>
--EXPECTF--
Fatal error: Declaration of foo::onCreate() must be compatible with that of 
php_user_filter::onCreate() in %s on line %d

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to