Lines Matching refs:zv

302 void phpdbg_set_zval_watchpoint(zval *zv, phpdbg_watchpoint_t *watch) {  argument
303 phpdbg_set_addr_watchpoint(zv, sizeof(zval) - sizeof(uint32_t), watch);
370 if (Z_REFCOUNTED_P(watch->addr.zv)) {
371 if (Z_COUNTED_P(watch->addr.zv) == watch->ref) {
379 watch->ref = Z_COUNTED_P(watch->addr.zv);
384 phpdbg_set_addr_watchpoint(Z_COUNTED_P(watch->addr.zv), sizeof(uint32_t), &coll->ref);
390 if (Z_ISREF_P(watch->addr.zv)) {
391 phpdbg_set_zval_watchpoint(Z_REFVAL_P(watch->addr.zv), &coll->reference);
397 } else if (Z_TYPE_P(watch->addr.zv) == IS_STRING) {
399 …point(&Z_STRLEN_P(watch->addr.zv), XtOffsetOf(zend_string, val) - XtOffsetOf(zend_string, len) + Z…
413 } else if (Z_TYPE_P(watch->addr.zv) == IS_INDIRECT) {
414 if ((zend_refcounted *) Z_INDIRECT_P(watch->addr.zv) == watch->ref) {
422 watch->ref = (zend_refcounted *) Z_INDIRECT_P(watch->addr.zv);
426 phpdbg_set_zval_watchpoint(Z_INDIRECT_P(watch->addr.zv), &coll->ref);
490 phpdbg_watch_element *phpdbg_add_ht_watch_element(zval *zv, phpdbg_watch_element *element) { argument
492 HashTable *ht = HT_FROM_ZVP(zv);
498 element->flags |= Z_TYPE_P(zv) == IS_ARRAY ? PHPDBG_WATCH_ARRAY : PHPDBG_WATCH_OBJECT;
516 …recursive_watch_from_ht(phpdbg_watch_element *element, zend_long idx, zend_string *str, zval *zv) { argument
518 if (phpdbg_is_recursively_watched(zv, element)) {
537 phpdbg_add_bucket_watch_element((Bucket *) zv, child);
542 zval *zv; local
545 zv = element->watch->addr.zv;
546 while (Z_TYPE_P(zv) == IS_INDIRECT) {
547 zv = Z_INDIRECT_P(zv);
549 ZVAL_DEREF(zv);
555 if ((Z_TYPE_P(zv) != IS_ARRAY && Z_TYPE_P(zv) != IS_OBJECT)
556 || phpdbg_is_recursively_watched(HT_WATCH_OFFSET + (char *) HT_FROM_ZVP(zv), element)) {
576 phpdbg_add_ht_watch_element(zv, child);
582 ZEND_HASH_FOREACH_KEY_VAL(HT_WATCH_HT(element->watch), idx, str, zv) {
583 phpdbg_add_recursive_watch_from_ht(element, idx, str, zv);
669 zval *zv; local
682 } else if ((zv = zend_symtable_find(ht, element->name_in_parent))) {
684 zval *next = zv;
696 } else if (phpdbg_check_watch_diff(WATCH_ON_ZVAL, &element->backup.zv, zv)) {
697 phpdbg_print_watch_diff(WATCH_ON_ZVAL, element->str, &element->backup.zv, zv);
701 phpdbg_add_bucket_watch_element((Bucket *) zv, element);
728 zval _zv, *zv = &_zv; local
731 zv = element->parent->watch->addr.zv;
732 while (Z_TYPE_P(zv) == IS_INDIRECT) {
733 zv = Z_INDIRECT_P(zv);
735 ZVAL_DEREF(zv);
737 ZVAL_ARR(zv, element->parent_container);
739 if (!phpdbg_try_readding_watch_element(zv, element)) {
944 …if ((watch->type == WATCH_ON_ZVAL || watch->type == WATCH_ON_BUCKET) && Z_TYPE(watch->backup.zv) >…
965 zval *zv; local
971 ZEND_HASH_REVERSE_FOREACH_KEY_VAL(HT_WATCH_HT(watch), idx, str, zv) {
983 phpdbg_add_recursive_watch_from_ht(element, idx, str, zv);
1036 watch->addr.zv = new;
1044 } else if (Z_TYPE_P(watch->addr.zv) == IS_UNDEF) {
1189 static int phpdbg_create_simple_watchpoint(zval *zv, phpdbg_watch_element *element) { argument
1191 phpdbg_add_bucket_watch_element((Bucket *) zv, element);
1195 static int phpdbg_create_array_watchpoint(zval *zv, phpdbg_watch_element *element) { argument
1198 zval *orig_zv = zv;
1200 ZVAL_DEREF(zv);
1201 if (Z_TYPE_P(zv) != IS_ARRAY && Z_TYPE_P(zv) != IS_OBJECT) {
1217 phpdbg_add_ht_watch_element(zv, new);
1221 static int phpdbg_create_recursive_watchpoint(zval *zv, phpdbg_watch_element *element) { argument
1224 phpdbg_add_bucket_watch_element((Bucket *) zv, element);
1228 typedef struct { int (*callback)(zval *zv, phpdbg_watch_element *); zend_string *str; } phpdbg_watc…
1230 … *name, size_t namelen, char *key, size_t keylen, HashTable *parent, zval *zv, phpdbg_watch_parse_… argument
1239 ret = info->callback(zv, element);
1269 … *name, size_t namelen, char *key, size_t keylen, HashTable *parent, zval *zv, phpdbg_watch_parse_… argument
1273 …&& Z_ISREF_P(PHPDBG_G(watch_tmp)->watch->addr.zv) && Z_REFVAL_P(PHPDBG_G(watch_tmp)->watch->addr.z…
1285 element = phpdbg_add_bucket_watch_element((Bucket *) zv, element);