helly           Sat Mar  4 22:56:11 2006 UTC

  Modified files:              
    /php-src/ext/spl    spl.php spl_directory.c 
  Log:
  - Need to change a few things to exception based error handling
  - Drop erroneus/useless RecursiveDirectoryIterator::getSubPathInfo()
  
  
http://cvs.php.net/viewcvs.cgi/php-src/ext/spl/spl.php?r1=1.71&r2=1.72&diff_format=u
Index: php-src/ext/spl/spl.php
diff -u php-src/ext/spl/spl.php:1.71 php-src/ext/spl/spl.php:1.72
--- php-src/ext/spl/spl.php:1.71        Tue Feb 21 23:21:53 2006
+++ php-src/ext/spl/spl.php     Sat Mar  4 22:56:11 2006
@@ -948,8 +948,8 @@
         */
        function setFileClass(string class_name = "SplFileObject") {/**/}
 
-       /** @param class_name name of class used with getFileInfo(), 
getPathInfo(), 
-        *                    getSubPathInfo(). Must be derived from 
SplFileInfo.
+       /** @param class_name name of class used with getFileInfo(), 
getPathInfo().
+        *                     Must be derived from SplFileInfo.
         */
        function setInfoClass(string class_name = "SplFileInfo") {/**/}
 }
@@ -1041,13 +1041,6 @@
        /** @return the current sub path
         */
        function getSubPathname() {/**/}
-
-       /** @return SplFileInfo created for the current sub path
-        * @param class_name name of class to instantiate
-        * @see SplFileInfo::setInfoClass()
-        */
-       function getSubPathInfo(string $class_name = NULL) {/**/}
-
 }
 
 /** @ingroup SPL
http://cvs.php.net/viewcvs.cgi/php-src/ext/spl/spl_directory.c?r1=1.78&r2=1.79&diff_format=u
Index: php-src/ext/spl/spl_directory.c
diff -u php-src/ext/spl/spl_directory.c:1.78 
php-src/ext/spl/spl_directory.c:1.79
--- php-src/ext/spl/spl_directory.c:1.78        Mon Feb 27 22:31:07 2006
+++ php-src/ext/spl/spl_directory.c     Sat Mar  4 22:56:11 2006
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: spl_directory.c,v 1.78 2006/02/27 22:31:07 helly Exp $ */
+/* $Id: spl_directory.c,v 1.79 2006/03/04 22:56:11 helly Exp $ */
 
 #ifdef HAVE_CONFIG_H
 # include "config.h"
@@ -748,26 +748,30 @@
        spl_filesystem_object *intern = 
(spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
        zend_class_entry *ce = spl_ce_SplFileObject;
        
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == 
FAILURE) {
-               return;
+       php_set_error_handling(EH_THROW, spl_ce_UnexpectedValueException 
TSRMLS_CC);
+
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == 
SUCCESS) {
+               intern->file_class = ce;
        }
 
-       intern->file_class = ce;
+       php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
 }
 /* }}} */
 
 /* {{{ proto SplFileObject SplFileInfo::setInfoClass([string class_name])
-   Class to use in getFileInfo(), getPathInfo(), getSubPathInfo() */
+   Class to use in getFileInfo(), getPathInfo() */
 SPL_METHOD(SplFileInfo, setInfoClass)
 {
        spl_filesystem_object *intern = 
(spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
        zend_class_entry *ce = spl_ce_SplFileInfo;
        
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == 
FAILURE) {
-               return;
+       php_set_error_handling(EH_THROW, spl_ce_UnexpectedValueException 
TSRMLS_CC);
+
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == 
SUCCESS) {
+               intern->info_class = ce;
        }
 
-       intern->info_class = ce;
+       php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
 }
 /* }}} */
 
@@ -778,11 +782,13 @@
        spl_filesystem_object *intern = 
(spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
        zend_class_entry *ce = intern->info_class;
        
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == 
FAILURE) {
-               return;
+       php_set_error_handling(EH_THROW, spl_ce_UnexpectedValueException 
TSRMLS_CC);
+
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == 
SUCCESS) {
+               spl_filesystem_object_create_type(ht, intern, SPL_FS_INFO, ce, 
return_value TSRMLS_CC);
        }
 
-       spl_filesystem_object_create_type(ht, intern, SPL_FS_INFO, ce, 
return_value TSRMLS_CC);
+       php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
 }
 /* }}} */
 
@@ -793,11 +799,13 @@
        spl_filesystem_object *intern = 
(spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
        zend_class_entry *ce = intern->info_class;
        
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == 
FAILURE) {
-               return;
+       php_set_error_handling(EH_THROW, spl_ce_UnexpectedValueException 
TSRMLS_CC);
+
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == 
SUCCESS) {
+               spl_filesystem_object_create_info(intern, intern->path, 
intern->path_len, 1, ce, return_value TSRMLS_CC);
        }
 
-       spl_filesystem_object_create_info(intern, intern->path, 
intern->path_len, 1, ce, return_value TSRMLS_CC);
+       php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
 }
 /* }}} */
 
@@ -810,7 +818,7 @@
        int len;
        long flags = SPL_FILE_DIR_CURRENT_AS_FILEINFO;
 
-       php_set_error_handling(EH_THROW, spl_ce_RuntimeException TSRMLS_CC);
+       php_set_error_handling(EH_THROW, spl_ce_UnexpectedValueException 
TSRMLS_CC);
 
        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &path, 
&len, &flags) == FAILURE) {
                php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
@@ -950,28 +958,6 @@
 }
 /* }}} */
 
-/* {{{ proto SplFileInfo RecursiveDirectoryIterator::getSubPathInfo([string 
$class_info])
-   Create SplFileInfo for sub path */
-SPL_METHOD(RecursiveDirectoryIterator, getSubPathInfo)
-{
-       spl_filesystem_object *intern = 
(spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
-       char *sub_name;
-       int len;
-       zend_class_entry *ce = intern->info_class;
-       
-       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == 
FAILURE) {
-               return;
-       }
-
-       if (intern->u.dir.sub_path) {
-               len = spprintf(&sub_name, 0, "%s%c%s", intern->u.dir.sub_path, 
DEFAULT_SLASH, intern->u.dir.entry.d_name);
-               spl_filesystem_object_create_info(intern, sub_name, len, 0, ce, 
return_value TSRMLS_CC);
-       } else {
-               spl_filesystem_object_create_info(intern, intern->path, 
intern->path_len, 1, ce, return_value TSRMLS_CC);
-       }
-}
-/* }}} */
-
 /* define an overloaded iterator structure */
 typedef struct {
        zend_object_iterator  intern;
@@ -1337,7 +1323,6 @@
        SPL_ME(RecursiveDirectoryIterator, getChildren,   NULL, ZEND_ACC_PUBLIC)
        SPL_ME(RecursiveDirectoryIterator, getSubPath,    NULL, ZEND_ACC_PUBLIC)
        SPL_ME(RecursiveDirectoryIterator, getSubPathname,NULL, ZEND_ACC_PUBLIC)
-       SPL_ME(RecursiveDirectoryIterator, 
getSubPathInfo,arginfo_info_optinalFileClass, ZEND_ACC_PUBLIC)
        {NULL, NULL, NULL}
 };
 

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

Reply via email to