Browse Source

Bugfix #26010 (Bug on get_object_vars() function)

PEAR_1_4DEV
Marcus Boerger 22 years ago
parent
commit
7cc93e121b
  1. 19
      Zend/zend_builtin_functions.c

19
Zend/zend_builtin_functions.c

@ -691,7 +691,12 @@ ZEND_FUNCTION(get_class_vars)
ZEND_FUNCTION(get_object_vars)
{
zval **obj;
zval *tmp;
zval **value;
HashTable *properties;
HashPosition pos;
char *key;
uint key_len;
ulong num_index;
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &obj) == FAILURE) {
ZEND_WRONG_PARAM_COUNT();
@ -705,8 +710,16 @@ ZEND_FUNCTION(get_object_vars)
}
array_init(return_value);
zend_hash_copy(return_value->value.ht, Z_OBJ_HT_PP(obj)->get_properties(*obj TSRMLS_CC),
(copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
properties = Z_OBJ_HT_PP(obj)->get_properties(*obj TSRMLS_CC);
zend_hash_internal_pointer_reset_ex(properties, &pos);
while (zend_hash_get_current_data_ex(properties, (void **) &value, &pos) == SUCCESS) {
if (zend_hash_get_current_key_ex(properties, &key, &key_len, &num_index, 0, &pos) == HASH_KEY_IS_STRING && key[0]) {
add_assoc_zval_ex(return_value, key, key_len, *value);
}
zend_hash_move_forward_ex(properties, &pos);
}
}
/* }}} */

Loading…
Cancel
Save