Skip to content

Commit 5212b81

Browse files
authored
zend_objects: Make old_object a const* in zend_objects_clone_members() (#22089)
* zend_objects: Make `old_object` a `const*` in `zend_objects_clone_members()` * tree-wide: Make the original object `const` in `clone_obj` handlers
1 parent ad7cce6 commit 5212b81

17 files changed

Lines changed: 23 additions & 22 deletions

File tree

Zend/zend_objects.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -193,14 +193,14 @@ ZEND_API zend_object* ZEND_FASTCALL zend_objects_new(zend_class_entry *ce)
193193
return object;
194194
}
195195

196-
ZEND_API void ZEND_FASTCALL zend_objects_clone_members(zend_object *new_object, zend_object *old_object)
196+
ZEND_API void ZEND_FASTCALL zend_objects_clone_members(zend_object *new_object, const zend_object *old_object)
197197
{
198198
bool has_clone_method = old_object->ce->clone != NULL;
199199

200200
if (old_object->ce->default_properties_count) {
201-
zval *src = old_object->properties_table;
201+
const zval *src = old_object->properties_table;
202202
zval *dst = new_object->properties_table;
203-
zval *end = src + old_object->ce->default_properties_count;
203+
const zval *end = src + old_object->ce->default_properties_count;
204204

205205
do {
206206
i_zval_ptr_dtor(dst);

Zend/zend_objects.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
BEGIN_EXTERN_C()
2525
ZEND_API void ZEND_FASTCALL zend_object_std_init(zend_object *object, zend_class_entry *ce);
2626
ZEND_API zend_object* ZEND_FASTCALL zend_objects_new(zend_class_entry *ce);
27-
ZEND_API void ZEND_FASTCALL zend_objects_clone_members(zend_object *new_object, zend_object *old_object);
27+
ZEND_API void ZEND_FASTCALL zend_objects_clone_members(zend_object *new_object, const zend_object *old_object);
2828

2929
ZEND_API void zend_object_std_dtor(zend_object *object);
3030
ZEND_API void zend_objects_destroy_object(zend_object *object);

ext/date/php_date.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1831,7 +1831,7 @@ static zend_object *date_object_new_date(zend_class_entry *class_type) /* {{{ */
18311831

18321832
static zend_object *date_object_clone_date(zend_object *this_ptr) /* {{{ */
18331833
{
1834-
php_date_obj *old_obj = php_date_obj_from_obj(this_ptr);
1834+
const php_date_obj *old_obj = php_date_obj_from_obj(this_ptr);
18351835
php_date_obj *new_obj = php_date_obj_from_obj(date_object_new_date(old_obj->std.ce));
18361836

18371837
zend_objects_clone_members(&new_obj->std, &old_obj->std);
@@ -1988,7 +1988,7 @@ static zend_object *date_object_new_timezone(zend_class_entry *class_type) /* {{
19881988

19891989
static zend_object *date_object_clone_timezone(zend_object *this_ptr) /* {{{ */
19901990
{
1991-
php_timezone_obj *old_obj = php_timezone_obj_from_obj(this_ptr);
1991+
const php_timezone_obj *old_obj = php_timezone_obj_from_obj(this_ptr);
19921992
php_timezone_obj *new_obj = php_timezone_obj_from_obj(date_object_new_timezone(old_obj->std.ce));
19931993

19941994
zend_objects_clone_members(&new_obj->std, &old_obj->std);
@@ -2131,7 +2131,7 @@ static zend_object *date_object_new_interval(zend_class_entry *class_type) /* {{
21312131

21322132
static zend_object *date_object_clone_interval(zend_object *this_ptr) /* {{{ */
21332133
{
2134-
php_interval_obj *old_obj = php_interval_obj_from_obj(this_ptr);
2134+
const php_interval_obj *old_obj = php_interval_obj_from_obj(this_ptr);
21352135
php_interval_obj *new_obj = php_interval_obj_from_obj(date_object_new_interval(old_obj->std.ce));
21362136

21372137
zend_objects_clone_members(&new_obj->std, &old_obj->std);
@@ -2222,7 +2222,7 @@ static zend_object *date_object_new_period(zend_class_entry *class_type) /* {{{
22222222

22232223
static zend_object *date_object_clone_period(zend_object *this_ptr) /* {{{ */
22242224
{
2225-
php_period_obj *old_obj = php_period_obj_from_obj(this_ptr);
2225+
const php_period_obj *old_obj = php_period_obj_from_obj(this_ptr);
22262226
php_period_obj *new_obj = php_period_obj_from_obj(date_object_new_period(old_obj->std.ce));
22272227

22282228
zend_objects_clone_members(&new_obj->std, &old_obj->std);

ext/gmp/gmp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ static HashTable *gmp_get_debug_info(zend_object *obj, int *is_temp) /* {{{ */
283283

284284
static zend_object *gmp_clone_obj(zend_object *obj) /* {{{ */
285285
{
286-
gmp_object *old_object = GET_GMP_OBJECT_FROM_OBJ(obj);
286+
const gmp_object *old_object = GET_GMP_OBJECT_FROM_OBJ(obj);
287287
gmp_object *new_object = GET_GMP_OBJECT_FROM_OBJ(gmp_create_object(obj->ce));
288288

289289
zend_objects_clone_members( &new_object->std, &old_object->std);

ext/hash/hash.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1397,7 +1397,7 @@ static void php_hashcontext_free(zend_object *obj) {
13971397

13981398
/* {{{ php_hashcontext_clone */
13991399
static zend_object *php_hashcontext_clone(zend_object *zobj) {
1400-
php_hashcontext_object *oldobj = php_hashcontext_from_object(zobj);
1400+
const php_hashcontext_object *oldobj = php_hashcontext_from_object(zobj);
14011401
zend_object *znew = php_hashcontext_create(zobj->ce);
14021402
php_hashcontext_object *newobj = php_hashcontext_from_object(znew);
14031403

ext/intl/breakiterator/breakiterator_class.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ static int BreakIterator_compare_objects(zval *object1,
9696
/* {{{ clone handler for BreakIterator */
9797
static zend_object *BreakIterator_clone_obj(zend_object *object)
9898
{
99-
BreakIterator_object *bio_orig = php_intl_breakiterator_fetch_object(object);
99+
const BreakIterator_object *bio_orig = php_intl_breakiterator_fetch_object(object);
100100
zend_object *ret_val = BreakIterator_ce_ptr->create_object(object->ce);
101101
BreakIterator_object *bio_new = php_intl_breakiterator_fetch_object(ret_val);
102102

ext/intl/calendar/calendar_class.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ U_CFUNC void calendar_object_construct(zval *object,
7777
/* {{{ clone handler for Calendar */
7878
static zend_object *Calendar_clone_obj(zend_object *object)
7979
{
80-
Calendar_object *co_orig = php_intl_calendar_fetch_object(object);
80+
const Calendar_object *co_orig = php_intl_calendar_fetch_object(object);
8181
zend_object *ret_val = Calendar_ce_ptr->create_object(object->ce);
8282
Calendar_object *co_new = php_intl_calendar_fetch_object(ret_val);
8383

ext/intl/converter/converter.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -934,7 +934,8 @@ static zend_object *php_converter_create_object(zend_class_entry *ce) {
934934
}
935935

936936
static zend_object *php_converter_clone_object(zend_object *object) {
937-
php_converter_object *objval, *oldobj = php_converter_fetch_object(object);
937+
const php_converter_object *oldobj = php_converter_fetch_object(object);
938+
php_converter_object *objval;
938939
zend_object *retval = php_converter_object_ctor(object->ce, &objval);
939940
UErrorCode error = U_ZERO_ERROR;
940941

ext/intl/dateformat/dateformat_class.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ zend_object *IntlDateFormatter_object_create(zend_class_entry *ce)
6666
/* {{{ IntlDateFormatter_object_clone */
6767
zend_object *IntlDateFormatter_object_clone(zend_object *object)
6868
{
69-
IntlDateFormatter_object *dfo = php_intl_dateformatter_fetch_object(object);
69+
const IntlDateFormatter_object *dfo = php_intl_dateformatter_fetch_object(object);
7070
zend_object *new_obj = IntlDateFormatter_ce_ptr->create_object(object->ce);
7171
IntlDateFormatter_object *new_dfo = php_intl_dateformatter_fetch_object(new_obj);
7272

ext/intl/dateformat/datepatterngenerator_class.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ zend_object_handlers IntlDatePatternGenerator_handlers;
3636

3737
static zend_object *IntlDatePatternGenerator_object_clone(zend_object *object)
3838
{
39-
IntlDatePatternGenerator_object *dtpgo_orig = php_intl_datepatterngenerator_fetch_object(object);
39+
const IntlDatePatternGenerator_object *dtpgo_orig = php_intl_datepatterngenerator_fetch_object(object);
4040
zend_object *ret_val = IntlDatePatternGenerator_ce_ptr->create_object(object->ce);
4141
IntlDatePatternGenerator_object *dtpgo_new = php_intl_datepatterngenerator_fetch_object(ret_val);
4242

0 commit comments

Comments
 (0)