mirror of
https://github.com/php/php-src.git
synced 2026-03-24 08:12:21 +01:00
Merge branch 'PHP-8.4'
* PHP-8.4: Fix reference support for intltz_get_offset()
This commit is contained in:
26
ext/intl/tests/intltz_get_offset_references.phpt
Normal file
26
ext/intl/tests/intltz_get_offset_references.phpt
Normal file
@@ -0,0 +1,26 @@
|
||||
--TEST--
|
||||
intltz_get_offset references
|
||||
--EXTENSIONS--
|
||||
intl
|
||||
--FILE--
|
||||
<?php
|
||||
$tz = IntlTimeZone::createTimeZone('Europe/Brussels');
|
||||
|
||||
class Test {
|
||||
public string $a, $b;
|
||||
}
|
||||
$test = new Test;
|
||||
$test->a = $test->b = "hello";
|
||||
|
||||
$rawOffset =& $test->a;
|
||||
$dstOffset =& $test->b;
|
||||
intltz_get_offset($tz, 0.0, true, $rawOffset, $dstOffset);
|
||||
var_dump($test);
|
||||
?>
|
||||
--EXPECT--
|
||||
object(Test)#2 (2) {
|
||||
["a"]=>
|
||||
&string(7) "3600000"
|
||||
["b"]=>
|
||||
&string(1) "0"
|
||||
}
|
||||
@@ -440,7 +440,7 @@ U_CFUNC PHP_FUNCTION(intltz_get_offset)
|
||||
TIMEZONE_METHOD_INIT_VARS;
|
||||
|
||||
if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(),
|
||||
"Odbz/z/", &object, TimeZone_ce_ptr, &date, &local, &rawOffsetArg,
|
||||
"Odbzz", &object, TimeZone_ce_ptr, &date, &local, &rawOffsetArg,
|
||||
&dstOffsetArg) == FAILURE) {
|
||||
RETURN_THROWS();
|
||||
}
|
||||
@@ -452,10 +452,8 @@ U_CFUNC PHP_FUNCTION(intltz_get_offset)
|
||||
|
||||
INTL_METHOD_CHECK_STATUS(to, "error obtaining offset");
|
||||
|
||||
zval_ptr_dtor(rawOffsetArg);
|
||||
ZVAL_LONG(rawOffsetArg, rawOffset);
|
||||
zval_ptr_dtor(dstOffsetArg);
|
||||
ZVAL_LONG(dstOffsetArg, dstOffset);
|
||||
ZEND_TRY_ASSIGN_REF_LONG(rawOffsetArg, rawOffset);
|
||||
ZEND_TRY_ASSIGN_REF_LONG(dstOffsetArg, dstOffset);
|
||||
|
||||
RETURN_TRUE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user