Diff for /embedaddon/php/ext/standard/array.c between versions 1.1.1.2 and 1.1.1.3

version 1.1.1.2, 2012/05/29 12:34:43 version 1.1.1.3, 2013/07/22 01:32:04
Line 2 Line 2
    +----------------------------------------------------------------------+     +----------------------------------------------------------------------+
    | PHP Version 5                                                        |     | PHP Version 5                                                        |
    +----------------------------------------------------------------------+     +----------------------------------------------------------------------+
   | Copyright (c) 1997-2012 The PHP Group                                |   | Copyright (c) 1997-2013 The PHP Group                                |
    +----------------------------------------------------------------------+     +----------------------------------------------------------------------+
    | This source file is subject to version 3.01 of the PHP license,      |     | This source file is subject to version 3.01 of the PHP license,      |
    | that is bundled with this package in the file LICENSE, and is        |     | that is bundled with this package in the file LICENSE, and is        |
Line 1058  static int php_array_walk(HashTable *target_hash, zval Line 1058  static int php_array_walk(HashTable *target_hash, zval
         char  *string_key;          char  *string_key;
         uint   string_key_len;          uint   string_key_len;
         ulong  num_key;          ulong  num_key;
         HashPosition pos;  
   
         /* Set up known arguments */          /* Set up known arguments */
         args[1] = &key;          args[1] = &key;
Line 1067  static int php_array_walk(HashTable *target_hash, zval Line 1066  static int php_array_walk(HashTable *target_hash, zval
                 Z_ADDREF_P(userdata);                  Z_ADDREF_P(userdata);
         }          }
   
         zend_hash_internal_pointer_reset_ex(target_hash, &pos);  
   
         BG(array_walk_fci).retval_ptr_ptr = &retval_ptr;          BG(array_walk_fci).retval_ptr_ptr = &retval_ptr;
         BG(array_walk_fci).param_count = userdata ? 3 : 2;          BG(array_walk_fci).param_count = userdata ? 3 : 2;
         BG(array_walk_fci).params = args;          BG(array_walk_fci).params = args;
         BG(array_walk_fci).no_separation = 0;          BG(array_walk_fci).no_separation = 0;
        
         /* Iterate through hash */          /* Iterate through hash */
        while (!EG(exception) && zend_hash_get_current_data_ex(target_hash, (void **)&args[0], &pos) == SUCCESS) {        zend_hash_internal_pointer_reset(target_hash);
         while (!EG(exception) && zend_hash_get_current_data(target_hash, (void **)&args[0]) == SUCCESS) {
                 if (recursive && Z_TYPE_PP(args[0]) == IS_ARRAY) {                  if (recursive && Z_TYPE_PP(args[0]) == IS_ARRAY) {
                         HashTable *thash;                          HashTable *thash;
                         zend_fcall_info orig_array_walk_fci;                          zend_fcall_info orig_array_walk_fci;
Line 1107  static int php_array_walk(HashTable *target_hash, zval Line 1105  static int php_array_walk(HashTable *target_hash, zval
                         MAKE_STD_ZVAL(key);                          MAKE_STD_ZVAL(key);
   
                         /* Set up the key */                          /* Set up the key */
                        switch (zend_hash_get_current_key_ex(target_hash, &string_key, &string_key_len, &num_key, 0, &pos)) {                        switch (zend_hash_get_current_key_ex(target_hash, &string_key, &string_key_len, &num_key, 0, NULL)) {
                                 case HASH_KEY_IS_LONG:                                  case HASH_KEY_IS_LONG:
                                         Z_TYPE_P(key) = IS_LONG;                                          Z_TYPE_P(key) = IS_LONG;
                                         Z_LVAL_P(key) = num_key;                                          Z_LVAL_P(key) = num_key;
Line 1135  static int php_array_walk(HashTable *target_hash, zval Line 1133  static int php_array_walk(HashTable *target_hash, zval
                         zval_ptr_dtor(&key);                          zval_ptr_dtor(&key);
                         key = NULL;                          key = NULL;
                 }                  }
                zend_hash_move_forward_ex(target_hash, &pos);                zend_hash_move_forward(target_hash);
         }          }
   
         if (userdata) {          if (userdata) {

Removed from v.1.1.1.2  
changed lines
  Added in v.1.1.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>