Weilin Du
2918caee20
ext/*: Remove break after return ( #21485 )
2026-03-23 20:30:13 +01:00
ndossche
46e8cb9ff4
Merge branch 'PHP-8.5'
...
* PHP-8.5:
Fix timezone offset with seconds losing precision
2026-02-05 18:39:22 +01:00
ndossche
e76044aa0b
Merge branch 'PHP-8.4' into PHP-8.5
...
* PHP-8.4:
Fix timezone offset with seconds losing precision
2026-02-05 18:39:18 +01:00
Niels Dossche
ee26417b58
Fix timezone offset with seconds losing precision
...
There are two issues:
1. The 'e' formatter doesn't output the seconds of the timezone even if
it has seconds.
2. var_dump(), (array) cast, serialization, ... don't include the
timezone second offset in the output. This means that, for example,
serializing and then unserializing a date object loses the seconds of
the timezone. This can be observed by comparing the output of
getTimezone() for `$dt` vs the unserialized object in the provided test.
Closes GH-20764.
2026-02-05 18:38:54 +01:00
ndossche
b860837b78
Merge branch 'PHP-8.5'
...
* PHP-8.5:
Fix GH-20936: DatePeriod::__set_state() cannot handle null start
2026-02-04 18:36:17 +01:00
ndossche
34a341e59f
Merge branch 'PHP-8.4' into PHP-8.5
...
* PHP-8.4:
Fix GH-20936: DatePeriod::__set_state() cannot handle null start
2026-02-04 18:35:29 +01:00
Niels Dossche
7445b0f6d9
Fix GH-20936: DatePeriod::__set_state() cannot handle null start
...
The "current" and "end" field also rely on start_ce, which is set by
"start". Therefore, if "current" or "end" are provided, so must "start"
be provided.
Closes GH-20939.
2026-02-04 18:34:38 +01:00
Arshid
5ce36453d6
[skip ci] Use STANDARD_MODULE_HEADER for ext-date (GH-21080)
2026-01-29 17:19:14 +01:00
Niels Dossche
d86182f7ef
date: Avoid passing objects using double pointers
...
Using single pointers is cleaner and also generates better machine code.
2026-01-13 18:53:43 +01:00
Niels Dossche
3c654a8574
date: Remove unused argument for internal functions
2026-01-13 18:53:43 +01:00
Niels Dossche
31ac5e481c
Merge branch 'PHP-8.5'
...
* PHP-8.5:
Fix crashes when trying to instantiate uninstantiable classes via date static constructors
2025-11-06 21:30:04 +01:00
Niels Dossche
ad5e182e0a
Merge branch 'PHP-8.4' into PHP-8.5
...
* PHP-8.4:
Fix crashes when trying to instantiate uninstantiable classes via date static constructors
2025-11-06 21:29:54 +01:00
Niels Dossche
ca084ac88a
Merge branch 'PHP-8.3' into PHP-8.4
...
* PHP-8.3:
Fix crashes when trying to instantiate uninstantiable classes via date static constructors
2025-11-06 21:29:43 +01:00
Niels Dossche
d3a4b4b09c
Fix crashes when trying to instantiate uninstantiable classes via date static constructors
...
Closes GH-20361.
2025-11-06 21:21:24 +01:00
Tim Düsterhus
34c71f8176
date: Use true / false instead of 1 / 0 for bool parameters
...
Changes done with Coccinelle:
@r1@
identifier F;
identifier p;
typedef bool;
parameter list [n1] PL1;
parameter list [n2] PL2;
@@
F(PL1, bool p, PL2) {
...
}
@r2@
identifier r1.F;
expression list [r1.n1] EL1;
expression list [r1.n2] EL2;
@@
F(EL1,
(
- 1
+ true
|
- 0
+ false
)
, EL2)
2025-09-24 18:51:40 +02:00
Tim Düsterhus
117060c1d8
date: Use return true / return false for functions returning bool
...
Changes done with Coccinelle:
@r1@
identifier fn;
typedef bool;
symbol false;
symbol true;
@@
bool fn ( ... )
{
<...
return
(
- 0
+ false
|
- 1
+ true
)
;
...>
}
Coccinelle patch sourced from
torvalds/linux@46b5c9b856 .
2025-09-24 18:51:40 +02:00
Tim Düsterhus
88d153f45e
date: Use true / false instead of 1 / 0 when assigning to bool
...
Changes done with Coccinelle:
@@
bool b;
@@
- b = 0
+ b = false
@@
bool b;
@@
- b = 1
+ b = true
2025-09-24 18:51:40 +02:00
Ilija Tovilo
e84393104a
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Fix date_sunrise() and date_sunset() with partial-hour UTC offset
2025-09-03 13:35:37 +02:00
Ilija Tovilo
73fc2db234
Merge branch 'PHP-8.3' into PHP-8.4
...
* PHP-8.3:
Fix date_sunrise() and date_sunset() with partial-hour UTC offset
2025-09-03 13:35:04 +02:00
Ilija Tovilo
0ae9a58ade
Fix date_sunrise() and date_sunset() with partial-hour UTC offset
...
See GH-19633
Closes GH-19672
2025-09-03 13:34:03 +02:00
Niels Dossche
99e6b0ecc8
Use stack allocation in timezone_initialize() ( #19394 )
...
This lives temporarily, avoid overhead and handling of heap allocation.
2025-08-08 20:29:39 +02:00
Gina Peter Banyard
aa9694bdd0
ext/date: null bytes in timezones can only happen via HT initialization ( #19357 )
...
Thus check this error condition early in the HT initialization code.
2025-08-06 21:02:25 +01:00
Niels Dossche
cec079ee72
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Fix memory leak in tidy output handler on error
Fix leaks with multiple calls to DatePeriod iterator current()
2025-05-26 19:42:39 +02:00
Niels Dossche
06f592820d
Merge branch 'PHP-8.3' into PHP-8.4
...
* PHP-8.3:
Fix memory leak in tidy output handler on error
Fix leaks with multiple calls to DatePeriod iterator current()
2025-05-26 19:42:20 +02:00
Niels Dossche
ff2c7dc0f8
Fix leaks with multiple calls to DatePeriod iterator current()
...
Destroy the old value first. We can't skip recreating the value because
the object may have been changed in between calls.
Closes GH-18624.
2025-05-26 19:40:41 +02:00
David CARLIER
4122daa494
ext/date: various array optimisations. ( #18382 )
2025-05-12 19:03:59 +01:00
David Carlier
0f6e18df8f
Merge branch 'PHP-8.4'
2025-05-03 16:56:55 +01:00
David Carlier
004d7cd290
Merge branch 'PHP-8.3' into PHP-8.4
2025-05-03 16:56:32 +01:00
David Carlier
0227d96f48
Fix GH-18481: date_sunrise check sun rise with offset if is finite/is nan
...
close GH-18484
2025-05-03 16:56:09 +01:00
Derick Rethans
7e1c8efa02
Merge branch 'PHP-8.4'
2025-04-22 17:11:32 +01:00
Derick Rethans
d54aee5b0c
Merge branch 'PHP-8.3' into PHP-8.4
2025-04-22 17:11:15 +01:00
Carlos Buenosvinos
c9f3127ca8
Fix GH-18076: date_sun_info() function returns inaccurate sunrise and sunset times
...
Closes GH-18317: Avoid double counting the 15 minutes radial correction of the sun
2025-04-22 16:45:57 +01:00
Niels Dossche
3ba725a556
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Fix GH-18309: ipv6 filter integer overflow
Fix GH-18304: Changing the properties of a DateInterval through dynamic properties triggers a SegFault
2025-04-11 23:36:42 +02:00
Niels Dossche
a019fbd970
Merge branch 'PHP-8.3' into PHP-8.4
...
* PHP-8.3:
Fix GH-18309: ipv6 filter integer overflow
Fix GH-18304: Changing the properties of a DateInterval through dynamic properties triggers a SegFault
2025-04-11 23:36:12 +02:00
Niels Dossche
ba0853888d
Fix GH-18304: Changing the properties of a DateInterval through dynamic properties triggers a SegFault
...
For dynamic fetches the cache_slot will be NULL, so we have to check for
that when resetting the cache. For zip and xmlreader this couldn't
easily be tested because of a lack of writable properties.
Closes GH-18307.
2025-04-11 23:33:58 +02:00
Gina Peter Banyard
77c2fcf147
ext/date: Remove unused parameter
2025-03-28 16:55:37 +00:00
Gina Peter Banyard
8a3dbb0401
ext/date: Change return type of check_id_allowed from int to bool
2025-03-28 16:55:37 +00:00
Gina Peter Banyard
a4685d8b54
ext/date: Add const qualifiers
2025-03-28 16:55:37 +00:00
Gina Peter Banyard
c67e12e718
ext/date: Use Z_PARAM_ARRAY_HT instead of Z_PARAM_ARRAY
2025-03-28 16:55:37 +00:00
Niels Dossche
1ae2c871d0
Avoid unnecessary string refcounting in ext/date ( #17890 )
2025-03-02 22:55:06 +01:00
Niels Dossche
d95b9d6d32
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Fix GH-17736: Assertion failure zend_reference_destroy()
2025-03-02 22:41:21 +01:00
Niels Dossche
ee4a9a4a7c
Merge branch 'PHP-8.3' into PHP-8.4
...
* PHP-8.3:
Fix GH-17736: Assertion failure zend_reference_destroy()
2025-03-02 22:37:07 +01:00
Niels Dossche
ce8ab5f16a
Fix GH-17736: Assertion failure zend_reference_destroy()
...
The cache slot for FETCH_OBJ_W in function `test` is primed with the
class for C. The next call uses a simplexml instance and reuses the same
cache slot. simplexml's get_property_ptr handler does not use the cache
slot, so the old values remain in the cache slot. When
`zend_handle_fetch_obj_flags` is called this is not guarded by a check
for the class entry. So we end up using the prop_info from the property
C::$a instead of the simplexml property.
This patch adds a reset to the cache slots in the property address fetch
code and also in the extensions with a non-standard reference handler.
This keeps the run time cache consistent and avoids the issue without
complicating the fast paths.
Closes GH-17739.
2025-03-02 22:33:32 +01:00
David Carlier
76ade7165e
Merge branch 'PHP-8.4'
2024-12-20 15:09:59 +00:00
David Carlier
aa815f32ae
Merge branch 'PHP-8.3' into PHP-8.4
2024-12-20 15:09:49 +00:00
David Carlier
16c0e57530
Fix GH-14709 overflow on recurrences for DatePeriod::__construct
...
close GH-14710
2024-12-20 15:03:47 +00:00
DanielEScherzer
b5c3c2d1d5
ext/date: reduce duplication in __wakeup() methods ( #15791 )
...
The only difference between `DateTime::__wakeup()` and
`DateTimeImmutable::__wakeup()` is which class name is included in the error
message if the initialization from the data fails. Factor out a helper method
that is given the class name, and use it for both methods.
2024-12-06 19:23:32 +01:00
Christoph M. Becker
7c37c25ef2
Merge branch 'PHP-8.4'
...
* PHP-8.4:
Fix GH-14732: date_sun_info() fails for non-finite values
2024-11-01 23:51:06 +01:00
Christoph M. Becker
68d3000902
Merge branch 'PHP-8.3' into PHP-8.4
...
* PHP-8.3:
Fix GH-14732: date_sun_info() fails for non-finite values
2024-11-01 23:50:40 +01:00
Christoph M. Becker
8df513336a
Merge branch 'PHP-8.2' into PHP-8.3
...
* PHP-8.2:
Fix GH-14732: date_sun_info() fails for non-finite values
2024-11-01 23:47:21 +01:00