Nikita Popov
e40c9d4918
Add some missing DatePeriod initialization checks
2020-08-13 17:23:23 +02:00
Nikita Popov
2965c8f868
Prefer strtoll over atoll
...
Both are specified by C99, but strtoll has specified overflow
behavior while atoll does not, so prefer using it.
2020-08-05 18:40:23 +02:00
Gregor Harlan
a6e3ce4fd6
datetime: new format "p", same as "P" but returning "Z" for UTC
2020-08-03 10:44:48 +02:00
Derick Rethans
90434d7fe3
Fixed bug #60302 : DateTime::createFromFormat should new static(), not new self()
...
Also fixes similar issues for DateTimeImmutable::createFromFormat,
DateTime::createFromImmmutable, DateTime::createFromInterface,
DateTimeImmutable::createFromMutable, and
DateTimeImmutable::createFromInterface.
2020-08-03 00:43:41 +01:00
Nikita Popov
1d4e229ab7
Fix incorrect initialization in date_sunrise()
2020-07-21 15:33:01 +02:00
Max Semenik
2b5de6f839
Remove proto comments from C files
...
Closes GH-5758
2020-07-06 21:13:34 +02:00
Nikita Popov
312201dce4
Add get_gc handle for object iterators
...
Optional handler with the same semantics as the object handler.
2020-07-01 15:17:22 +02:00
Máté Kocsis
e93d20ad7e
Add ZPP macros for class name or object parameters
...
Closes GH-5647
2020-06-30 11:19:30 +02:00
Nikita Popov
ff19ec2df3
Introduce InternalIterator
...
Userland classes that implement Traversable must do so either
through Iterator or IteratorAggregate. The same requirement does
not exist for internal classes: They can implement the internal
get_iterator mechanism, without exposing either the Iterator or
IteratorAggregate APIs. This makes them usable in get_iterator(),
but incompatible with any Iterator based APIs.
A lot of internal classes do this, because exposing the userland
APIs is simply a lot of work. This patch alleviates this issue by
providing a generic InternalIterator class, which acts as an
adapater between get_iterator and Iterator, and can be easily
used by many internal classes. At the same time, we extend the
requirement that Traversable implies Iterator or IteratorAggregate
to internal classes as well.
Closes GH-5216.
2020-06-24 15:31:41 +02:00
Nikita Popov
15846ff115
Add ZVAL_OBJ_COPY macro
...
For the common ZVAL_OBJ + GC_ADDREF pattern.
This mirrors the existing ZVAL_STR_COPY API.
2020-06-17 16:36:56 +02:00
twosee
88355dd338
Constify char * arguments of APIs
...
Closes GH-5676.
2020-06-08 10:38:45 +02:00
twosee
7d6a0ba808
Fix expression warnings and break warnings
...
Close GH-5675.
2020-06-07 10:41:11 +02:00
twosee
1b85e749c7
Fix warning of strict-prototypes
...
Closes GH-5673.
2020-06-07 10:36:50 +02:00
Máté Kocsis
ffcc8135e2
Convert UNKNOWN default values to null in ext/date
...
Closes GH-5509
2020-05-02 11:05:37 +02:00
Máté Kocsis
1d05771a70
Add support for generating method entries from stubs
...
Closes GH-5363
2020-04-11 09:15:14 +02:00
Máté Kocsis
7c3078737f
Generate function entries from stubs for a couple of extensions
...
Closes GH-5347
2020-04-04 20:41:48 +02:00
Nikita Popov
fb5bfcb75b
Add a ZEND_UNCOMPARABLE value
...
To explicitly indicate that objects are uncomparable. For now
this has no functional difference from the usual 1 return value,
but makes intent clearer.
2020-03-31 12:36:48 +02:00
Christoph M. Becker
6b6f0d63f3
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #74940 : DateTimeZone loose comparison always true
2020-03-30 09:18:20 +02:00
Christoph M. Becker
a2f8c78183
Fix #74940 : DateTimeZone loose comparison always true
...
Since `DateTimeZone` does not implement a `compare_objects` handler,
nor has any properties, two `DateTimeZone` instances always compare as
being equal, even if they designate totally different timezones. Even
worse, after calling `var_dump()` on these objects, the actual
comparison may yield a correct result.
We therefore introduce a `compare_objects` handlers, which prevents
different behavior before/after `var_dump()`, and which allows us to
clearly define the intended semantics.
2020-03-30 09:03:40 +02:00
Christoph M. Becker
8ea143a943
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #79396 : DateTime hour incorrect during DST jump forward
2020-03-19 08:53:46 +01:00
Christoph M. Becker
1d9e716a47
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #79396 : DateTime hour incorrect during DST jump forward
2020-03-19 08:51:55 +01:00
Nate Brunette
d70058a139
Fix #79396 : DateTime hour incorrect during DST jump forward
...
When you attempt to set the time to a non-existent time occuring during
a DST jump forward, the hour does not move forward correctly.
2020-03-19 08:50:34 +01:00
Nikita Popov
58b17906f5
Apply tidy formatting
...
Mostly reindent PHP scripts to spaces.
2020-02-03 13:41:31 +01:00
Nikita Popov
a66e226713
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix DatePeriod property handling with indirect modification
2020-01-30 13:14:29 +01:00
Nikita Popov
01d30f880a
Fix DatePeriod property handling with indirect modification
...
We do need to implement get_property_ptr_ptr to make arrays work
correctly.
2020-01-30 13:09:47 +01:00
Nikita Popov
0078727866
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix leak in DateTimeImmutable::modify()
2020-01-30 12:17:15 +01:00
Nikita Popov
187f359549
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix leak in DateTimeImmutable::modify()
2020-01-30 12:17:10 +01:00
Nikita Popov
494615fcb8
Fix leak in DateTimeImmutable::modify()
2020-01-30 12:16:56 +01:00
Nikita Popov
472fc3a2a9
Fix leak in DatePeriod construction with invalid format
...
Same issue as I fixed in DateInterval construction before.
2020-01-30 11:13:04 +01:00
Nikita Popov
648f16c2ec
Fix rel_date leak on DateInterval construction failure
2020-01-28 13:11:49 +01:00
Máté Kocsis
d1764ca330
Make error messages more consistent by fixing capitalization
...
Closes GH-5066 As a first step, let's capitalize their initial letter when it is applicable.
2020-01-17 14:52:46 +01:00
mike
1658b5babc
Adding DateTime(Immutable)::createFromInterface()
...
These are like
DateTime::createFromImmutable()
DateTimeImmutable::createFromMutable()
but accept any DateTimeInterface instead.
Closes GH-5016.
2020-01-03 16:55:12 +01:00
Christoph M. Becker
1400f4ac12
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #79015 : undefined-behavior in php_date.c
2020-01-03 14:32:56 +01:00
Christoph M. Becker
40b2f82380
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #79015 : undefined-behavior in php_date.c
2020-01-03 14:32:30 +01:00
Christoph M. Becker
b48f2625b5
Fix #79015 : undefined-behavior in php_date.c
...
We check that the given microsecond fraction is in the valid range
[0, 1000000[, and otherwise mark it as invalid. We also drop the
useless do loop; a plain block is sufficient here.
2020-01-03 14:31:03 +01:00
Máté Kocsis
1b93cfee0c
Use RETURN_THROWS() after zend_parse_method_parameters()
2020-01-02 23:01:37 +01:00
Máté Kocsis
349a286461
Use RETURN_THROWS() after zend_throw_error()
2020-01-01 16:42:30 +01:00
Máté Kocsis
2f7309b1e9
Use RETURN_THROWS() during ZPP in the date, dba and dom extensions
2019-12-31 00:21:37 +01:00
Nikita Popov
0cec268d15
Support single class unions in gen stubs
2019-11-15 17:19:26 +01:00
Nikita Popov
468ecf295d
Fix DateTimeImmutable stubs
...
These were referencing the arginfo from the functions, instead of
the methods, which isn't right, as the functions have return types.
2019-11-15 16:02:26 +01:00
Máté Kocsis
2204dbde3b
Add missing ZPP checks
...
Closes GH-4878.
2019-11-01 15:26:52 +01:00
Máté Kocsis
9493893412
Cleanup return values when parameter parsing is unsuccessful
2019-10-30 16:05:20 +01:00
Nikita Popov
6719d3e718
Add Z_PARAM_STRING/ARRAY_OR_NULL convenience macros
2019-10-29 13:29:52 +01:00
Christoph M. Becker
f9a98f6dbd
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #78751 : Serialising DatePeriod converts DateTimeImmutable
2019-10-28 13:09:44 +01:00
Christoph M. Becker
9e4c5db733
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #78751 : Serialising DatePeriod converts DateTimeImmutable
2019-10-28 13:09:24 +01:00
Christoph M. Becker
736cd93ef5
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Fix #78751 : Serialising DatePeriod converts DateTimeImmutable
2019-10-28 13:08:34 +01:00
Christoph M. Becker
89c327f884
Fix #78751 : Serialising DatePeriod converts DateTimeImmutable
...
When getting the properties of a DatePeriod instance we have to retain
the proper classes, and when restoring a DatePeriod instance we have to
cater to DateTimeImmutable instances as well.
2019-10-28 13:07:28 +01:00
Christoph M. Becker
2484f1e88a
Merge branch 'PHP-7.4'
...
* PHP-7.4:
Fix #70153 \DateInterval incorrectly unserialized
2019-10-18 15:33:58 +02:00
Christoph M. Becker
197568d634
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #70153 \DateInterval incorrectly unserialized
2019-10-18 15:33:25 +02:00
Christoph M. Becker
c7c7ab53ac
Merge branch 'PHP-7.2' into PHP-7.3
...
* PHP-7.2:
Fix #70153 \DateInterval incorrectly unserialized
2019-10-18 15:32:08 +02:00