summaryrefslogtreecommitdiff
path: root/sapi/phpdbg/phpdbg_watch.h
diff options
context:
space:
mode:
Diffstat (limited to 'sapi/phpdbg/phpdbg_watch.h')
-rw-r--r--sapi/phpdbg/phpdbg_watch.h23
1 files changed, 16 insertions, 7 deletions
diff --git a/sapi/phpdbg/phpdbg_watch.h b/sapi/phpdbg/phpdbg_watch.h
index d101ab116d..ca56af8c3e 100644
--- a/sapi/phpdbg/phpdbg_watch.h
+++ b/sapi/phpdbg/phpdbg_watch.h
@@ -48,23 +48,27 @@ typedef enum {
} phpdbg_watchtype;
-#define PHPDBG_WATCH_SIMPLE 0x0
-#define PHPDBG_WATCH_RECURSIVE 0x1
-#define PHPDBG_WATCH_ARRAY 0x2
-#define PHPDBG_WATCH_OBJECT 0x4
+#define PHPDBG_WATCH_SIMPLE 0x01
+#define PHPDBG_WATCH_RECURSIVE 0x02
+#define PHPDBG_WATCH_ARRAY 0x04
+#define PHPDBG_WATCH_OBJECT 0x08
+#define PHPDBG_WATCH_NORMAL (PHPDBG_WATCH_SIMPLE | PHPDBG_WATCH_RECURSIVE)
+#define PHPDBG_WATCH_IMPLICIT 0x10
+
+#define PHPDBG_DESTRUCTED_ZVAL 0x80
typedef struct _phpdbg_watchpoint_t phpdbg_watchpoint_t;
struct _phpdbg_watchpoint_t {
union {
zval *zv;
- HashTable *ht;
zend_refcounted *ref;
void *ptr;
} addr;
size_t size;
phpdbg_watchtype type;
char flags;
+ unsigned int implicit_ht_count;
phpdbg_watchpoint_t *parent;
phpdbg_watchpoint_t *reference;
HashTable *parent_container;
@@ -73,12 +77,17 @@ struct _phpdbg_watchpoint_t {
};
typedef struct {
- phpdbg_watchpoint_t watch;
- unsigned int num;
+ phpdbg_watchpoint_t *watch;
unsigned int refs;
HashTable watches;
+ HashTable implicit_watches;
} phpdbg_watch_collision;
+typedef struct {
+ dtor_func_t dtor;
+ HashTable watches;
+} phpdbg_watch_ht_info;
+
void phpdbg_setup_watchpoints(void);
#ifndef _WIN32