Lines Matching refs:zv

357 void phpdbg_set_zval_watchpoint(zval *zv, phpdbg_watchpoint_t *watch) {  argument
358 phpdbg_set_addr_watchpoint(zv, sizeof(zval) - sizeof(uint32_t), watch);
425 if (Z_REFCOUNTED_P(watch->addr.zv)) {
426 if (Z_COUNTED_P(watch->addr.zv) == watch->ref) {
434 watch->ref = Z_COUNTED_P(watch->addr.zv);
439 phpdbg_set_addr_watchpoint(Z_COUNTED_P(watch->addr.zv), sizeof(uint32_t), &coll->ref);
445 if (Z_ISREF_P(watch->addr.zv)) {
446 phpdbg_set_zval_watchpoint(Z_REFVAL_P(watch->addr.zv), &coll->reference);
452 } else if (Z_TYPE_P(watch->addr.zv) == IS_STRING) {
454 …point(&Z_STRLEN_P(watch->addr.zv), XtOffsetOf(zend_string, val) - XtOffsetOf(zend_string, len) + Z…
468 } else if (Z_TYPE_P(watch->addr.zv) == IS_INDIRECT) {
469 if ((zend_refcounted *) Z_INDIRECT_P(watch->addr.zv) == watch->ref) {
477 watch->ref = (zend_refcounted *) Z_INDIRECT_P(watch->addr.zv);
481 phpdbg_set_zval_watchpoint(Z_INDIRECT_P(watch->addr.zv), &coll->ref);
547 phpdbg_watch_element *phpdbg_add_ht_watch_element(zval *zv, phpdbg_watch_element *element) { argument
549 HashTable *ht = HT_FROM_ZVP(zv);
555 element->flags |= Z_TYPE_P(zv) == IS_ARRAY ? PHPDBG_WATCH_ARRAY : PHPDBG_WATCH_OBJECT;
573 …recursive_watch_from_ht(phpdbg_watch_element *element, zend_long idx, zend_string *str, zval *zv) { argument
575 if (phpdbg_is_recursively_watched(zv, element)) {
594 phpdbg_add_bucket_watch_element((Bucket *) zv, child);
599 zval *zv; local
602 zv = element->watch->addr.zv;
603 while (Z_TYPE_P(zv) == IS_INDIRECT) {
604 zv = Z_INDIRECT_P(zv);
606 ZVAL_DEREF(zv);
612 if ((Z_TYPE_P(zv) != IS_ARRAY && Z_TYPE_P(zv) != IS_OBJECT)
613 || phpdbg_is_recursively_watched(HT_WATCH_OFFSET + (char *) HT_FROM_ZVP(zv), element)) {
633 phpdbg_add_ht_watch_element(zv, child);
639 ZEND_HASH_FOREACH_KEY_VAL(HT_WATCH_HT(element->watch), idx, str, zv) {
640 phpdbg_add_recursive_watch_from_ht(element, idx, str, zv);
720 zval *zv; local
733 } else if ((zv = zend_symtable_find(ht, element->name_in_parent))) {
735 zval *next = zv;
747 } else if (phpdbg_check_watch_diff(WATCH_ON_ZVAL, &element->backup.zv, zv)) {
748 phpdbg_print_watch_diff(WATCH_ON_ZVAL, element->str, &element->backup.zv, zv);
752 phpdbg_add_bucket_watch_element((Bucket *) zv, element);
779 zval _zv, *zv = &_zv; local
782 zv = element->parent->watch->addr.zv;
783 while (Z_TYPE_P(zv) == IS_INDIRECT) {
784 zv = Z_INDIRECT_P(zv);
786 ZVAL_DEREF(zv);
788 ZVAL_ARR(zv, element->parent_container);
790 if (!phpdbg_try_re_adding_watch_element(zv, element)) {
998 …if ((watch->type == WATCH_ON_ZVAL || watch->type == WATCH_ON_BUCKET) && Z_TYPE(watch->backup.zv) >…
1019 zval *zv; local
1025 ZEND_HASH_REVERSE_FOREACH_KEY_VAL(HT_WATCH_HT(watch), idx, str, zv) {
1037 phpdbg_add_recursive_watch_from_ht(element, idx, str, zv);
1090 watch->addr.zv = new;
1098 } else if (Z_TYPE_P(watch->addr.zv) == IS_UNDEF) {
1253 static int phpdbg_create_simple_watchpoint(zval *zv, phpdbg_watch_element *element) { argument
1255 phpdbg_add_bucket_watch_element((Bucket *) zv, element);
1259 static int phpdbg_create_array_watchpoint(zval *zv, phpdbg_watch_element *element) { argument
1262 zval *orig_zv = zv;
1264 ZVAL_DEREF(zv);
1265 if (Z_TYPE_P(zv) != IS_ARRAY && Z_TYPE_P(zv) != IS_OBJECT) {
1281 phpdbg_add_ht_watch_element(zv, new);
1285 static int phpdbg_create_recursive_watchpoint(zval *zv, phpdbg_watch_element *element) { argument
1288 phpdbg_add_bucket_watch_element((Bucket *) zv, element);
1292 typedef struct { int (*callback)(zval *zv, phpdbg_watch_element *); zend_string *str; } phpdbg_watc…
1294 … *name, size_t namelen, char *key, size_t keylen, HashTable *parent, zval *zv, phpdbg_watch_parse_… argument
1303 ret = info->callback(zv, element);
1335 … *name, size_t namelen, char *key, size_t keylen, HashTable *parent, zval *zv, phpdbg_watch_parse_… argument
1339 …&& Z_ISREF_P(PHPDBG_G(watch_tmp)->watch->addr.zv) && Z_REFVAL_P(PHPDBG_G(watch_tmp)->watch->addr.z…
1351 element = phpdbg_add_bucket_watch_element((Bucket *) zv, element);