Skip to content

Commit 471976d

Browse files
committed
review object management
1 parent af42089 commit 471976d

26 files changed

+202
-138
lines changed

src/php/handlers/php_deque_handlers.c

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ zend_object_handlers php_deque_handlers;
99
static zval *php_ds_deque_read_dimension
1010
#if PHP_VERSION_ID >= 80000
1111
(zend_object *obj, zval *offset, int type, zval *return_value) {
12-
ds_deque_t *deque = ((php_ds_deque_t*)obj)->deque;
12+
ds_deque_t *deque = php_ds_deque_fetch_object(obj)->deque;
1313
#else
1414
(zval *obj, zval *offset, int type, zval *return_value) {
1515
ds_deque_t *deque = Z_DS_DEQUE_P(obj);
@@ -47,7 +47,7 @@ static zval *php_ds_deque_read_dimension
4747
static void php_ds_deque_write_dimension
4848
#if PHP_VERSION_ID >= 80000
4949
(zend_object *obj, zval *offset, zval *value) {
50-
ds_deque_t *deque = ((php_ds_deque_t*)obj)->deque;
50+
ds_deque_t *deque = php_ds_deque_fetch_object(obj)->deque;
5151
#else
5252
(zval *obj, zval *offset, zval *value) {
5353
ds_deque_t *deque = Z_DS_DEQUE_P(obj);
@@ -69,7 +69,7 @@ static void php_ds_deque_write_dimension
6969
static int php_ds_deque_has_dimension
7070
#if PHP_VERSION_ID >= 80000
7171
(zend_object *obj, zval *offset, int check_empty) {
72-
ds_deque_t *deque = ((php_ds_deque_t*)obj)->deque;
72+
ds_deque_t *deque = php_ds_deque_fetch_object(obj)->deque;
7373
#else
7474
(zval *obj, zval *offset, int check_empty) {
7575
ds_deque_t *deque = Z_DS_DEQUE_P(obj);
@@ -86,7 +86,7 @@ static int php_ds_deque_has_dimension
8686
static void php_ds_deque_unset_dimension
8787
#if PHP_VERSION_ID >= 80000
8888
(zend_object *obj, zval *offset) {
89-
ds_deque_t *deque = ((php_ds_deque_t*)obj)->deque;
89+
ds_deque_t *deque = php_ds_deque_fetch_object(obj)->deque;
9090
#else
9191
(zval *obj, zval *offset) {
9292
ds_deque_t *deque = Z_DS_DEQUE_P(obj);
@@ -111,24 +111,25 @@ static void php_ds_deque_unset_dimension
111111
static int php_ds_deque_count_elements
112112
#if PHP_VERSION_ID >= 80000
113113
(zend_object *obj, zend_long *count) {
114-
*count = ((php_ds_deque_t*)obj)->deque->size; return SUCCESS;
114+
*count = php_ds_deque_fetch_object(obj)->deque->size;
115115
#else
116116
(zval *obj, zend_long *count) {
117-
*count = Z_DS_DEQUE_P(obj)->size; return SUCCESS;
117+
*count = Z_DS_DEQUE_P(obj)->size;
118118
#endif
119+
return SUCCESS;
119120
}
120121

121122
static void php_ds_deque_free_object(zend_object *object)
122123
{
123-
php_ds_deque_t *obj = (php_ds_deque_t*) object;
124-
zend_object_std_dtor(&obj->std);
124+
php_ds_deque_t *obj = php_ds_deque_fetch_object(object);
125125
ds_deque_free(obj->deque);
126+
zend_object_std_dtor(&obj->std);
126127
}
127128

128129
static HashTable *php_ds_deque_get_debug_info
129130
#if PHP_VERSION_ID >= 80000
130131
(zend_object *obj, int *is_temp) {
131-
ds_deque_t *deque = ((php_ds_deque_t*)obj)->deque;
132+
ds_deque_t *deque = php_ds_deque_fetch_object(obj)->deque;
132133
#else
133134
(zval *obj, int *is_temp) {
134135
ds_deque_t *deque = Z_DS_DEQUE_P(obj);
@@ -142,7 +143,7 @@ static HashTable *php_ds_deque_get_debug_info
142143
static zend_object *php_ds_deque_clone_obj
143144
#if PHP_VERSION_ID >= 80000
144145
(zend_object *obj) {
145-
return php_ds_deque_create_clone(((php_ds_deque_t*)obj)->deque);
146+
return php_ds_deque_create_clone(php_ds_deque_fetch_object(obj)->deque);
146147
#else
147148
(zval *obj) {
148149
return php_ds_deque_create_clone(Z_DS_DEQUE_P(obj));
@@ -152,7 +153,7 @@ static zend_object *php_ds_deque_clone_obj
152153
static HashTable *php_ds_deque_get_gc
153154
#if PHP_VERSION_ID >= 80000
154155
(zend_object *obj, zval **gc_data, int *gc_count) {
155-
ds_deque_t *deque = ((php_ds_deque_t*)obj)->deque;
156+
ds_deque_t *deque = php_ds_deque_fetch_object(obj)->deque;
156157
#else
157158
(zval *obj, zval **gc_data, int *gc_count) {
158159
ds_deque_t *deque = Z_DS_DEQUE_P(obj);

src/php/handlers/php_map_handlers.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ zend_object_handlers php_map_handlers;
88
static zval *php_ds_map_read_dimension
99
#if PHP_VERSION_ID >= 80000
1010
(zend_object *obj, zval *offset, int type, zval *rv) {
11-
ds_map_t *map = ((php_ds_map_t*)obj)->map;
11+
ds_map_t *map = php_ds_map_fetch_object(obj)->map;
1212
#else
1313
(zval *obj, zval *offset, int type, zval *rv) {
1414
ds_map_t *map = Z_DS_MAP_P(obj);
@@ -46,7 +46,7 @@ static zval *php_ds_map_read_dimension
4646
static void php_ds_map_write_dimension
4747
#if PHP_VERSION_ID >= 80000
4848
(zend_object *obj, zval *offset, zval *value) {
49-
ds_map_t *map = ((php_ds_map_t*)obj)->map;
49+
ds_map_t *map = php_ds_map_fetch_object(obj)->map;
5050
#else
5151
(zval *obj, zval *offset, zval *value) {
5252
ds_map_t *map = Z_DS_MAP_P(obj);
@@ -62,7 +62,7 @@ static void php_ds_map_write_dimension
6262
static int php_ds_map_has_dimension
6363
#if PHP_VERSION_ID >= 80000
6464
(zend_object *obj, zval *offset, int check_empty) {
65-
ds_map_t *map = ((php_ds_map_t*)obj)->map;
65+
ds_map_t *map = php_ds_map_fetch_object(obj)->map;
6666
#else
6767
(zval *obj, zval *offset, int check_empty) {
6868
ds_map_t *map = Z_DS_MAP_P(obj);
@@ -74,7 +74,7 @@ static int php_ds_map_has_dimension
7474
static void php_ds_map_unset_dimension
7575
#if PHP_VERSION_ID >= 80000
7676
(zend_object *obj, zval *offset) {
77-
ds_map_t *map = ((php_ds_map_t*)obj)->map;
77+
ds_map_t *map = php_ds_map_fetch_object(obj)->map;
7878
#else
7979
(zval *obj, zval *offset) {
8080
ds_map_t *map = Z_DS_MAP_P(obj);
@@ -86,7 +86,7 @@ static void php_ds_map_unset_dimension
8686
static int php_ds_map_count_elements
8787
#if PHP_VERSION_ID >= 80000
8888
(zend_object *obj, zend_long *count) {
89-
ds_map_t *map = ((php_ds_map_t*)obj)->map;
89+
ds_map_t *map = php_ds_map_fetch_object(obj)->map;
9090
#else
9191
(zval *obj, zend_long *count) {
9292
ds_map_t *map = Z_DS_MAP_P(obj);
@@ -97,15 +97,15 @@ static int php_ds_map_count_elements
9797

9898
static void php_ds_map_free_object(zend_object *object)
9999
{
100-
php_ds_map_t *intern = (php_ds_map_t*) object;
101-
zend_object_std_dtor(&intern->std);
100+
php_ds_map_t *intern = php_ds_map_fetch_object(object);
102101
ds_map_free(intern->map);
102+
zend_object_std_dtor(&intern->std);
103103
}
104104

105105
static HashTable *php_ds_map_get_debug_info
106106
#if PHP_VERSION_ID >= 80000
107107
(zend_object *obj, int *is_temp) {
108-
ds_map_t *map = ((php_ds_map_t*)obj)->map;
108+
ds_map_t *map = php_ds_map_fetch_object(obj)->map;
109109
#else
110110
(zval *obj, int *is_temp) {
111111
ds_map_t *map = Z_DS_MAP_P(obj);
@@ -117,7 +117,7 @@ static HashTable *php_ds_map_get_debug_info
117117
static zend_object *php_ds_map_clone_obj
118118
#if PHP_VERSION_ID >= 80000
119119
(zend_object *obj) {
120-
ds_map_t *map = ((php_ds_map_t*)obj)->map;
120+
ds_map_t *map = php_ds_map_fetch_object(obj)->map;
121121
#else
122122
(zval *obj) {
123123
ds_map_t *map = Z_DS_MAP_P(obj);
@@ -128,7 +128,7 @@ static zend_object *php_ds_map_clone_obj
128128
static HashTable *php_ds_map_get_gc
129129
#if PHP_VERSION_ID >= 80000
130130
(zend_object *obj, zval **gc_data, int *gc_size) {
131-
ds_map_t *map = ((php_ds_map_t*)obj)->map;
131+
ds_map_t *map = php_ds_map_fetch_object(obj)->map;
132132
#else
133133
(zval *obj, zval **gc_data, int *gc_size) {
134134
ds_map_t *map = Z_DS_MAP_P(obj);
@@ -147,7 +147,7 @@ void php_ds_register_map_handlers()
147147
{
148148
memcpy(&php_map_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
149149

150-
php_map_handlers.offset = 0;
150+
php_map_handlers.offset = XtOffsetOf(php_ds_map_t, std);
151151
php_map_handlers.dtor_obj = zend_objects_destroy_object;
152152
php_map_handlers.get_gc = php_ds_map_get_gc;
153153
php_map_handlers.free_obj = php_ds_map_free_object;

src/php/handlers/php_priority_queue_handlers.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,19 @@ zend_object_handlers php_priority_queue_handlers;
88

99
static void php_ds_priority_queue_free_object(zend_object *object)
1010
{
11-
php_ds_priority_queue_t *queue = (php_ds_priority_queue_t*) object;
12-
zend_object_std_dtor(&queue->std);
11+
php_ds_priority_queue_t *queue = php_ds_priority_queue_fetch_object(object);
1312
ds_priority_queue_free(queue->queue);
1413

1514
if (queue->gc_data != NULL) {
1615
efree(queue->gc_data);
1716
}
17+
zend_object_std_dtor(&queue->std);
1818
}
1919

2020
static int php_ds_priority_queue_count_elements
2121
#if PHP_VERSION_ID >= 80000
2222
(zend_object *obj, zend_long *count) {
23-
ds_priority_queue_t *pq = ((php_ds_priority_queue_t *) obj)->queue;
23+
ds_priority_queue_t *pq = php_ds_priority_queue_fetch_object(obj)->queue;
2424
#else
2525
(zval *obj, zend_long *count) {
2626
ds_priority_queue_t *pq = Z_DS_PRIORITY_QUEUE_P(obj);
@@ -32,7 +32,7 @@ static int php_ds_priority_queue_count_elements
3232
static zend_object *php_ds_priority_queue_clone_obj
3333
#if PHP_VERSION_ID >= 80000
3434
(zend_object *obj) {
35-
ds_priority_queue_t *pq = ((php_ds_priority_queue_t *) obj)->queue;
35+
ds_priority_queue_t *pq = php_ds_priority_queue_fetch_object(obj)->queue;
3636
#else
3737
(zval *obj) {
3838
ds_priority_queue_t *pq = Z_DS_PRIORITY_QUEUE_P(obj);
@@ -43,7 +43,7 @@ static zend_object *php_ds_priority_queue_clone_obj
4343
static HashTable *php_ds_priority_queue_get_debug_info
4444
#if PHP_VERSION_ID >= 80000
4545
(zend_object *obj, int *is_temp) {
46-
ds_priority_queue_t *pq = ((php_ds_priority_queue_t *) obj)->queue;
46+
ds_priority_queue_t *pq = php_ds_priority_queue_fetch_object(obj)->queue;
4747
#else
4848
(zval *obj, int *is_temp) {
4949
ds_priority_queue_t *pq = Z_DS_PRIORITY_QUEUE_P(obj);
@@ -57,7 +57,7 @@ static HashTable *php_ds_priority_queue_get_debug_info
5757
static HashTable *php_ds_priority_queue_get_gc
5858
#if PHP_VERSION_ID >= 80000
5959
(zend_object *obj, zval **gc_data, int *gc_size) {
60-
ds_priority_queue_t *pq = ((php_ds_priority_queue_t *) obj)->queue;
60+
ds_priority_queue_t *pq = php_ds_priority_queue_fetch_object(obj)->queue;
6161
#else
6262
(zval *obj, zval **gc_data, int *gc_size) {
6363
ds_priority_queue_t *pq = Z_DS_PRIORITY_QUEUE_P(obj);

src/php/handlers/php_queue_handlers.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ zend_object_handlers php_queue_handlers;
1010
static void php_ds_queue_write_dimension
1111
#if PHP_VERSION_ID >= 80000
1212
(zend_object *obj, zval *offset, zval *value) {
13-
ds_queue_t *queue = ((php_ds_queue_t*)obj)->queue;
13+
ds_queue_t *queue = php_ds_queue_fetch_object(obj)->queue;
1414
#else
1515
(zval *obj, zval *offset, zval *value) {
1616
ds_queue_t *queue = Z_DS_QUEUE_P(obj);
@@ -24,15 +24,15 @@ static void php_ds_queue_write_dimension
2424

2525
static void php_ds_queue_free_object(zend_object *object)
2626
{
27-
php_ds_queue_t *queue = (php_ds_queue_t*) object;
28-
zend_object_std_dtor(&queue->std);
27+
php_ds_queue_t *queue = php_ds_queue_fetch_object(object);
2928
ds_queue_free(queue->queue);
29+
zend_object_std_dtor(&queue->std);
3030
}
3131

3232
static int php_ds_queue_count_elements
3333
#if PHP_VERSION_ID >= 80000
3434
(zend_object *obj, zend_long *count) {
35-
ds_queue_t *queue = ((php_ds_queue_t*)obj)->queue;
35+
ds_queue_t *queue = php_ds_queue_fetch_object(obj)->queue;
3636
#else
3737
(zval *obj, zend_long *count) {
3838
ds_queue_t *queue = Z_DS_QUEUE_P(obj);
@@ -44,7 +44,7 @@ static int php_ds_queue_count_elements
4444
static zend_object *php_ds_queue_clone_obj
4545
#if PHP_VERSION_ID >= 80000
4646
(zend_object *obj) {
47-
ds_queue_t *queue = ((php_ds_queue_t*)obj)->queue;
47+
ds_queue_t *queue = php_ds_queue_fetch_object(obj)->queue;
4848
#else
4949
(zval *obj) {
5050
ds_queue_t *queue = Z_DS_QUEUE_P(obj);
@@ -55,7 +55,7 @@ static zend_object *php_ds_queue_clone_obj
5555
static HashTable *php_ds_queue_get_debug_info
5656
#if PHP_VERSION_ID >= 80000
5757
(zend_object *obj, int *is_temp) {
58-
ds_queue_t *queue = ((php_ds_queue_t*)obj)->queue;
58+
ds_queue_t *queue = php_ds_queue_fetch_object(obj)->queue;
5959
#else
6060
(zval *obj, int *is_temp) {
6161
ds_queue_t *queue = Z_DS_QUEUE_P(obj);
@@ -69,7 +69,7 @@ static HashTable *php_ds_queue_get_debug_info
6969
static HashTable *php_ds_queue_get_gc
7070
#if PHP_VERSION_ID >= 80000
7171
(zend_object *obj, zval **gc_data, int *gc_count) {
72-
ds_queue_t *queue = ((php_ds_queue_t*)obj)->queue;
72+
ds_queue_t *queue = php_ds_queue_fetch_object(obj)->queue;
7373
#else
7474
(zval *obj, zval **gc_data, int *gc_count) {
7575
ds_queue_t *queue = Z_DS_QUEUE_P(obj);

src/php/handlers/php_set_handlers.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ zend_object_handlers php_ds_set_handlers;
99
static zval *php_ds_set_read_dimension
1010
#if PHP_VERSION_ID >= 80000
1111
(zend_object *obj, zval *offset, int type, zval *rv) {
12-
ds_set_t *set = ((php_ds_set_t*)obj)->set;
12+
ds_set_t *set = php_ds_set_fetch_object(obj)->set;
1313
#else
1414
(zval *obj, zval *offset, int type, zval *rv) {
1515
ds_set_t *set = Z_DS_SET_P(obj);
@@ -30,7 +30,7 @@ static zval *php_ds_set_read_dimension
3030
static void php_ds_set_write_dimension
3131
#if PHP_VERSION_ID >= 80000
3232
(zend_object *obj, zval *offset, zval *value) {
33-
ds_set_t *set = ((php_ds_set_t*)obj)->set;
33+
ds_set_t *set = php_ds_set_fetch_object(obj)->set;
3434
#else
3535
(zval *obj, zval *offset, zval *value) {
3636
ds_set_t *set = Z_DS_SET_P(obj);
@@ -45,7 +45,7 @@ static void php_ds_set_write_dimension
4545
static int php_ds_set_count_elements
4646
#if PHP_VERSION_ID >= 80000
4747
(zend_object *obj, zend_long *count) {
48-
ds_set_t *set = ((php_ds_set_t*)obj)->set;
48+
ds_set_t *set = php_ds_set_fetch_object(obj)->set;
4949
#else
5050
(zval *obj, zend_long *count) {
5151
ds_set_t *set = Z_DS_SET_P(obj);
@@ -56,15 +56,15 @@ static int php_ds_set_count_elements
5656

5757
static void php_ds_set_free_object(zend_object *object)
5858
{
59-
php_ds_set_t *obj = (php_ds_set_t*) object;
60-
zend_object_std_dtor(&obj->std);
59+
php_ds_set_t *obj = php_ds_set_fetch_object(object);
6160
ds_set_free(obj->set);
61+
zend_object_std_dtor(&obj->std);
6262
}
6363

6464
static HashTable *php_ds_set_get_debug_info
6565
#if PHP_VERSION_ID >= 80000
6666
(zend_object *obj, int *is_temp) {
67-
ds_set_t *set = ((php_ds_set_t*)obj)->set;
67+
ds_set_t *set = php_ds_set_fetch_object(obj)->set;
6868
#else
6969
(zval *obj, int *is_temp) {
7070
ds_set_t *set = Z_DS_SET_P(obj);
@@ -79,7 +79,7 @@ static HashTable *php_ds_set_get_debug_info
7979
static zend_object *php_ds_set_clone_obj
8080
#if PHP_VERSION_ID >= 80000
8181
(zend_object *obj) {
82-
ds_set_t *set = ((php_ds_set_t*)obj)->set;
82+
ds_set_t *set = php_ds_set_fetch_object(obj)->set;
8383
#else
8484
(zval *obj) {
8585
ds_set_t *set = Z_DS_SET_P(obj);
@@ -90,7 +90,7 @@ static zend_object *php_ds_set_clone_obj
9090
static HashTable *php_ds_set_get_gc
9191
#if PHP_VERSION_ID >= 80000
9292
(zend_object *obj, zval **gc_data, int *gc_count) {
93-
ds_set_t *set = ((php_ds_set_t*)obj)->set;
93+
ds_set_t *set = php_ds_set_fetch_object(obj)->set;
9494
#else
9595
(zval *obj, zval **gc_data, int *gc_count) {
9696
ds_set_t *set = Z_DS_SET_P(obj);
@@ -110,7 +110,7 @@ void php_ds_register_set_handlers()
110110
{
111111
memcpy(&php_ds_set_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
112112

113-
php_ds_set_handlers.offset = 0; // XtOffsetOf(php_ds_set_t, std);
113+
php_ds_set_handlers.offset = XtOffsetOf(php_ds_set_t, std);
114114

115115
php_ds_set_handlers.cast_object = php_ds_default_cast_object;
116116
php_ds_set_handlers.clone_obj = php_ds_set_clone_obj;

0 commit comments

Comments
 (0)