@@ -3773,11 +3773,14 @@ ZEND_METHOD(FFI, new) /* {{{ */
3773
3773
FFI_G (symbols ) = NULL ;
3774
3774
FFI_G (tags ) = NULL ;
3775
3775
}
3776
+ bool clean_symbols = FFI_G (symbols ) == NULL ;
3777
+ bool clean_tags = FFI_G (tags ) == NULL ;
3776
3778
3777
3779
FFI_G (default_type_attr ) = 0 ;
3778
3780
3779
3781
if (zend_ffi_parse_type (ZSTR_VAL (type_def ), ZSTR_LEN (type_def ), & dcl ) == FAILURE ) {
3780
3782
zend_ffi_type_dtor (dcl .type );
3783
+ <<<<<<< HEAD
3781
3784
if (is_static_call ) {
3782
3785
if (FFI_G (tags )) {
3783
3786
zend_hash_destroy (FFI_G (tags ));
@@ -3789,6 +3792,17 @@ ZEND_METHOD(FFI, new) /* {{{ */
3789
3792
efree (FFI_G (symbols ));
3790
3793
FFI_G (symbols ) = NULL ;
3791
3794
}
3795
+ = == == ==
3796
+ if (clean_tags && FFI_G (tags )) {
3797
+ zend_hash_destroy (FFI_G (tags ));
3798
+ efree (FFI_G (tags ));
3799
+ FFI_G (tags ) = NULL ;
3800
+ }
3801
+ if (clean_symbols && FFI_G (symbols )) {
3802
+ zend_hash_destroy (FFI_G (symbols ));
3803
+ efree (FFI_G (symbols ));
3804
+ FFI_G (symbols ) = NULL ;
3805
+ >>>>>>> PHP - 8.2
3792
3806
}
3793
3807
return ;
3794
3808
}
@@ -3798,6 +3812,7 @@ ZEND_METHOD(FFI, new) /* {{{ */
3798
3812
is_const = 1 ;
3799
3813
}
3800
3814
3815
+ <<<<<<< HEAD
3801
3816
if (is_static_call ) {
3802
3817
if (FFI_G (tags )) {
3803
3818
zend_ffi_tags_cleanup (& dcl );
@@ -3807,6 +3822,15 @@ ZEND_METHOD(FFI, new) /* {{{ */
3807
3822
efree (FFI_G (symbols ));
3808
3823
FFI_G (symbols ) = NULL ;
3809
3824
}
3825
+ = == == ==
3826
+ if (clean_tags && FFI_G (tags )) {
3827
+ zend_ffi_tags_cleanup (& dcl );
3828
+ }
3829
+ if (clean_symbols && FFI_G (symbols )) {
3830
+ zend_hash_destroy (FFI_G (symbols ));
3831
+ efree (FFI_G (symbols ));
3832
+ FFI_G (symbols ) = NULL ;
3833
+ >>>>>>> PHP - 8.2
3810
3834
}
3811
3835
FFI_G (symbols ) = NULL ;
3812
3836
FFI_G (tags ) = NULL ;
@@ -3925,11 +3949,14 @@ ZEND_METHOD(FFI, cast) /* {{{ */
3925
3949
FFI_G (symbols ) = NULL ;
3926
3950
FFI_G (tags ) = NULL ;
3927
3951
}
3952
+ bool clean_symbols = FFI_G (symbols ) == NULL ;
3953
+ bool clean_tags = FFI_G (tags ) == NULL ;
3928
3954
3929
3955
FFI_G (default_type_attr ) = 0 ;
3930
3956
3931
3957
if (zend_ffi_parse_type (ZSTR_VAL (type_def ), ZSTR_LEN (type_def ), & dcl ) == FAILURE ) {
3932
3958
zend_ffi_type_dtor (dcl .type );
3959
+ <<<<<<< HEAD
3933
3960
if (is_static_call ) {
3934
3961
if (FFI_G (tags )) {
3935
3962
zend_hash_destroy (FFI_G (tags ));
@@ -3941,6 +3968,17 @@ ZEND_METHOD(FFI, cast) /* {{{ */
3941
3968
efree (FFI_G (symbols ));
3942
3969
FFI_G (symbols ) = NULL ;
3943
3970
}
3971
+ = == == ==
3972
+ if (clean_tags && FFI_G (tags )) {
3973
+ zend_hash_destroy (FFI_G (tags ));
3974
+ efree (FFI_G (tags ));
3975
+ FFI_G (tags ) = NULL ;
3976
+ }
3977
+ if (clean_symbols && FFI_G (symbols )) {
3978
+ zend_hash_destroy (FFI_G (symbols ));
3979
+ efree (FFI_G (symbols ));
3980
+ FFI_G (symbols ) = NULL ;
3981
+ >>>>>>> PHP - 8.2
3944
3982
}
3945
3983
return ;
3946
3984
}
@@ -3950,6 +3988,7 @@ ZEND_METHOD(FFI, cast) /* {{{ */
3950
3988
is_const = 1 ;
3951
3989
}
3952
3990
3991
+ <<<<<<< HEAD
3953
3992
if (is_static_call ) {
3954
3993
if (FFI_G (tags )) {
3955
3994
zend_ffi_tags_cleanup (& dcl );
@@ -3959,6 +3998,15 @@ ZEND_METHOD(FFI, cast) /* {{{ */
3959
3998
efree (FFI_G (symbols ));
3960
3999
FFI_G (symbols ) = NULL ;
3961
4000
}
4001
+ = == == ==
4002
+ if (clean_tags && FFI_G (tags )) {
4003
+ zend_ffi_tags_cleanup (& dcl );
4004
+ }
4005
+ if (clean_symbols && FFI_G (symbols )) {
4006
+ zend_hash_destroy (FFI_G (symbols ));
4007
+ efree (FFI_G (symbols ));
4008
+ FFI_G (symbols ) = NULL ;
4009
+ >>>>>>> PHP - 8.2
3962
4010
}
3963
4011
FFI_G (symbols ) = NULL ;
3964
4012
FFI_G (tags ) = NULL ;
@@ -4099,11 +4147,14 @@ ZEND_METHOD(FFI, type) /* {{{ */
4099
4147
FFI_G (symbols ) = NULL ;
4100
4148
FFI_G (tags ) = NULL ;
4101
4149
}
4150
+ bool clean_symbols = FFI_G (symbols ) == NULL ;
4151
+ bool clean_tags = FFI_G (tags ) == NULL ;
4102
4152
4103
4153
FFI_G (default_type_attr ) = 0 ;
4104
4154
4105
4155
if (zend_ffi_parse_type (ZSTR_VAL (type_def ), ZSTR_LEN (type_def ), & dcl ) == FAILURE ) {
4106
4156
zend_ffi_type_dtor (dcl .type );
4157
+ <<<<<<< HEAD
4107
4158
if (is_static_call ) {
4108
4159
if (FFI_G (tags )) {
4109
4160
zend_hash_destroy (FFI_G (tags ));
@@ -4124,10 +4175,28 @@ ZEND_METHOD(FFI, type) /* {{{ */
4124
4175
zend_ffi_tags_cleanup (& dcl );
4125
4176
}
4126
4177
if (FFI_G (symbols )) {
4178
+ = == == ==
4179
+ if (clean_tags && FFI_G (tags )) {
4180
+ zend_hash_destroy (FFI_G (tags ));
4181
+ efree (FFI_G (tags ));
4182
+ FFI_G (tags ) = NULL ;
4183
+ }
4184
+ if (clean_symbols && FFI_G (symbols )) {
4185
+ >>>>>>> PHP - 8.2
4127
4186
zend_hash_destroy (FFI_G (symbols ));
4128
4187
efree (FFI_G (symbols ));
4129
4188
FFI_G (symbols ) = NULL ;
4130
4189
}
4190
+ return ;
4191
+ }
4192
+
4193
+ if (clean_tags && FFI_G (tags )) {
4194
+ zend_ffi_tags_cleanup (& dcl );
4195
+ }
4196
+ if (clean_symbols && FFI_G (symbols )) {
4197
+ zend_hash_destroy (FFI_G (symbols ));
4198
+ efree (FFI_G (symbols ));
4199
+ FFI_G (symbols ) = NULL ;
4131
4200
}
4132
4201
FFI_G (symbols ) = NULL ;
4133
4202
FFI_G (tags ) = NULL ;
0 commit comments