andrei          Fri Jul 14 18:03:13 2006 UTC

  Modified files:              
    /php-src    unicode-progress.txt 
    /php-src/ext/standard       array.c 
  Log:
  Update array_search()/in_array() for params API and mark with U.
  
  
http://cvs.php.net/viewvc.cgi/php-src/unicode-progress.txt?r1=1.18&r2=1.19&diff_format=u
Index: php-src/unicode-progress.txt
diff -u php-src/unicode-progress.txt:1.18 php-src/unicode-progress.txt:1.19
--- php-src/unicode-progress.txt:1.18   Fri Jul 14 17:55:27 2006
+++ php-src/unicode-progress.txt        Fri Jul 14 18:03:13 2006
@@ -55,9 +55,6 @@
     array_reverse()
         Params API, test
 
-    array_search(), in_array()
-        Params API, test
-
     array_splice()
         Params API, test
 
@@ -100,10 +97,12 @@
     array_merge_recursive()
     array_product()
     array_push(), array_pop(), array_shift(), array_unshift()
+    array_search()
     array_sum()
     array_values()
     compact()
     count()
+    in_array()
     min()
     max()
     range()
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/array.c?r1=1.356&r2=1.357&diff_format=u
Index: php-src/ext/standard/array.c
diff -u php-src/ext/standard/array.c:1.356 php-src/ext/standard/array.c:1.357
--- php-src/ext/standard/array.c:1.356  Fri Jul 14 17:55:27 2006
+++ php-src/ext/standard/array.c        Fri Jul 14 18:03:13 2006
@@ -21,7 +21,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: array.c,v 1.356 2006/07/14 17:55:27 andrei Exp $ */
+/* $Id: array.c,v 1.357 2006/07/14 18:03:13 andrei Exp $ */
 
 #include "php.h"
 #include "php_ini.h"
@@ -1225,40 +1225,31 @@
  */
 static void php_search_array(INTERNAL_FUNCTION_PARAMETERS, int behavior)
 {
-       zval **value,                           /* value to check for */
-                **array,                               /* array to check in */
-                **strict,                              /* strict comparison or 
not */
+       zval *value,                            /* value to check for */
+                *array,                                /* array to check in */
                 **entry,                               /* pointer to array 
entry */
                  res;                                  /* comparison result */
        HashTable *target_hash;         /* array hashtable */
        HashPosition pos;                       /* hash iterator */
+       zend_bool strict = 0;           /* strict comparison or not */
        ulong num_key;
        uint str_key_len;
        zstr string_key;
        int (*is_equal_func)(zval *, zval *, zval * TSRMLS_DC) = 
is_equal_function;
 
-       if (ZEND_NUM_ARGS() < 2 || ZEND_NUM_ARGS() > 3 ||
-               zend_get_parameters_ex(ZEND_NUM_ARGS(), &value, &array, 
&strict) == FAILURE) {
-               WRONG_PARAM_COUNT;
-       }
-
-       
-       if (Z_TYPE_PP(array) != IS_ARRAY) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Wrong datatype for 
second argument");
-               RETURN_FALSE;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "za|b", &value, 
&array,
+                                                         &strict) == FAILURE) {
+               return;
        }
 
-       if (ZEND_NUM_ARGS() == 3) {
-               convert_to_boolean_ex(strict);
-               if (Z_LVAL_PP(strict)) {
-                       is_equal_func = is_identical_function;
-               }
+       if (strict) {
+               is_equal_func = is_identical_function;
        }
 
-       target_hash = HASH_OF(*array);
+       target_hash = HASH_OF(array);
        zend_hash_internal_pointer_reset_ex(target_hash, &pos);
        while (zend_hash_get_current_data_ex(target_hash, (void **)&entry, 
&pos) == SUCCESS) {
-               is_equal_func(&res, *value, *entry TSRMLS_CC);
+               is_equal_func(&res, value, *entry TSRMLS_CC);
                if (Z_LVAL(res)) {
                        if (behavior == 0) {             
                                RETURN_TRUE;
@@ -1285,7 +1276,7 @@
 }
 
 
-/* {{{ proto bool in_array(mixed needle, array haystack [, bool strict])
+/* {{{ proto bool in_array(mixed needle, array haystack [, bool strict]) U
    Checks if the given value exists in the array */
 PHP_FUNCTION(in_array)
 {
@@ -1293,7 +1284,7 @@
 }
 /* }}} */
 
-/* {{{ proto mixed array_search(mixed needle, array haystack [, bool strict])
+/* {{{ proto mixed array_search(mixed needle, array haystack [, bool strict]) U
    Searches the array for a given value and returns the corresponding key if 
successful */
 PHP_FUNCTION(array_search)
 {

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

Reply via email to