Skip to content

Commit d3acd87

Browse files
committed
Merge branch 'str_size_and_int64' into str_size_and_int64_openssl
2 parents f9816d6 + 31a4d08 commit d3acd87

File tree

169 files changed

+1878
-1534
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

169 files changed

+1878
-1534
lines changed

NEWS

+5
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,9 @@ PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
33
?? ??? 20??, PHP 5.7.0
44

5+
- DBA:
6+
. Fixed bug #62490 (dba_delete returns true on missing item (inifile)). (Mike)
7+
- XSL:
8+
. Fixed bug #64776 (The XSLT extension is not thread safe). (Mike)
9+
510
<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>

UPGRADING

+3
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ PHP X.Y UPGRADE NOTES
2020
1. Backward Incompatible Changes
2121
========================================
2222

23+
- DBA
24+
. dba_delete() now returns false if the key was not found for the inifile
25+
handler, too.
2326

2427
========================================
2528
2. New Features

Zend/tests/generators/throw_caught.phpt

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Generator::throw() where the exception is caught in the generator
44
<?php
55

66
function gen() {
7+
echo "before yield\n";
78
try {
89
yield;
910
} catch (RuntimeException $e) {
@@ -18,6 +19,7 @@ var_dump($gen->throw(new RuntimeException('Test')));
1819

1920
?>
2021
--EXPECTF--
22+
before yield
2123
exception 'RuntimeException' with message 'Test' in %s:%d
2224
Stack trace:
2325
#0 {main}

Zend/tests/generators/throw_rethrow.phpt

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Generator::throw() where the generator throws a different exception
44
<?php
55

66
function gen() {
7+
echo "before yield\n";
78
try {
89
yield;
910
} catch (RuntimeException $e) {
@@ -18,6 +19,7 @@ var_dump($gen->throw(new RuntimeException('throw')));
1819

1920
?>
2021
--EXPECTF--
22+
before yield
2123
Caught: exception 'RuntimeException' with message 'throw' in %s:%d
2224
Stack trace:
2325
#0 {main}

Zend/zend.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
#ifndef ZEND_H
2323
#define ZEND_H
2424

25-
#define ZEND_VERSION "2.6.0-dev"
25+
#define ZEND_VERSION "2.7.0-dev"
2626

2727
#define ZEND_ENGINE_2
2828

Zend/zend_builtin_functions.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1483,7 +1483,7 @@ ZEND_FUNCTION(crash)
14831483
ZEND_FUNCTION(get_included_files)
14841484
{
14851485
char *entry;
1486-
uint entry_len;
1486+
zend_str_size_uint entry_len;
14871487

14881488
if (zend_parse_parameters_none() == FAILURE) {
14891489
return;

Zend/zend_execute.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -135,15 +135,15 @@ static zend_always_inline int i_zend_is_true(zval *op)
135135
if (Z_OBJ_HT_P(op)->cast_object) {
136136
zval tmp;
137137
if (Z_OBJ_HT_P(op)->cast_object(op, &tmp, IS_BOOL TSRMLS_CC) == SUCCESS) {
138-
result = Z_LVAL(tmp);
138+
result = (int)Z_LVAL(tmp);
139139
break;
140140
}
141141
} else if (Z_OBJ_HT_P(op)->get) {
142142
zval *tmp = Z_OBJ_HT_P(op)->get(op TSRMLS_CC);
143143
if(Z_TYPE_P(tmp) != IS_OBJECT) {
144144
/* for safety - avoid loop */
145145
convert_to_boolean(tmp);
146-
result = Z_LVAL_P(tmp);
146+
result = (int)Z_LVAL_P(tmp);
147147
zval_ptr_dtor(&tmp);
148148
break;
149149
}
@@ -183,7 +183,7 @@ struct _zend_vm_stack {
183183
} \
184184
} while (0)
185185

186-
static zend_always_inline zend_vm_stack zend_vm_stack_new_page(int count) {
186+
static zend_always_inline zend_vm_stack zend_vm_stack_new_page(size_t count) {
187187
zend_vm_stack page = (zend_vm_stack)emalloc(ZEND_MM_ALIGNED_SIZE(sizeof(*page)) + sizeof(void*) * count);
188188

189189
page->top = ZEND_VM_STACK_ELEMETS(page);

Zend/zend_generators.c

+2
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,8 @@ ZEND_METHOD(Generator, throw)
560560

561561
generator = (zend_generator *) zend_object_store_get_object(getThis() TSRMLS_CC);
562562

563+
zend_generator_ensure_initialized(generator TSRMLS_CC);
564+
563565
if (generator->execute_data) {
564566
/* Throw the exception in the context of the generator */
565567
zend_execute_data *current_execute_data = EG(current_execute_data);

Zend/zend_int.h

+6
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ typedef __int64 zend_off_t;
1919
# define ZEND_INT_MAX _I64_MAX
2020
# define ZEND_INT_MIN _I64_MIN
2121
# define ZEND_UINT_MAX _UI64_MAX
22+
# define Z_I(i) i##i64
23+
# define Z_UI(i) i##Ui64
2224
# else
2325
# error Cant enable 64 bit integers on non 64 bit platform
2426
# endif
@@ -30,6 +32,8 @@ typedef off_t zend_off_t;
3032
# define ZEND_INT_MAX INT64_MAX
3133
# define ZEND_INT_MIN INT64_MIN
3234
# define ZEND_UINT_MAX UINT64_MAX
35+
# define Z_I(i) i##LL
36+
# define Z_UI(i) i##ULL
3337
# else
3438
# error Cant enable 64 bit integers on non 64 bit platform
3539
# endif
@@ -42,6 +46,8 @@ typedef long zend_off_t;
4246
# define ZEND_INT_MAX LONG_MAX
4347
# define ZEND_INT_MIN LONG_MIN
4448
# define ZEND_UINT_MAX ULONG_MAX
49+
# define Z_I(i) i##L
50+
# define Z_UI(i) i##UL
4551
# define SIZEOF_ZEND_INT SIZEOF_LONG
4652
#endif
4753

Zend/zend_vm_gen.php

+9-3
Original file line numberDiff line numberDiff line change
@@ -911,9 +911,15 @@ function gen_executor($f, $skl, $spec, $kind, $executor_name, $initializer_name,
911911
out($f,"#undef CHECK_EXCEPTION\n");
912912
out($f,"#undef HANDLE_EXCEPTION\n");
913913
out($f,"#undef HANDLE_EXCEPTION_LEAVE\n");
914-
out($f,"#define CHECK_EXCEPTION() if (UNEXPECTED(EG(exception) != NULL)) goto ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
915-
out($f,"#define HANDLE_EXCEPTION() goto ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
916-
out($f,"#define HANDLE_EXCEPTION_LEAVE() goto ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
914+
if (ZEND_VM_SPEC) {
915+
out($f,"#define CHECK_EXCEPTION() if (UNEXPECTED(EG(exception) != NULL)) goto ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
916+
out($f,"#define HANDLE_EXCEPTION() goto ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
917+
out($f,"#define HANDLE_EXCEPTION_LEAVE() goto ZEND_HANDLE_EXCEPTION_SPEC_HANDLER\n");
918+
} else {
919+
out($f,"#define CHECK_EXCEPTION() if (UNEXPECTED(EG(exception) != NULL)) goto ZEND_HANDLE_EXCEPTION_HANDLER\n");
920+
out($f,"#define HANDLE_EXCEPTION() goto ZEND_HANDLE_EXCEPTION_HANDLER\n");
921+
out($f,"#define HANDLE_EXCEPTION_LEAVE() goto ZEND_HANDLE_EXCEPTION_HANDLER\n");
922+
}
917923
out($f,"#define LOAD_REGS()\n");
918924
out($f,"#define ZEND_VM_CONTINUE() goto *(void**)(OPLINE->handler)\n");
919925
out($f,"#define ZEND_VM_RETURN() EG(in_execution) = original_in_execution; return\n");

ext/bcmath/bcmath.c

+50-43
Original file line numberDiff line numberDiff line change
@@ -206,12 +206,13 @@ static void php_str2num(bc_num *num, char *str TSRMLS_DC)
206206
PHP_FUNCTION(bcadd)
207207
{
208208
char *left, *right;
209-
long scale_param = 0;
209+
php_int_t scale_param = 0;
210210
bc_num first, second, result;
211-
int left_len, right_len;
212-
int scale = BCG(bc_precision), argc = ZEND_NUM_ARGS();
211+
zend_str_size_int left_len, right_len;
212+
php_int_t scale = BCG(bc_precision);
213+
int argc = ZEND_NUM_ARGS();
213214

214-
if (zend_parse_parameters(argc TSRMLS_CC, "ss|l", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
215+
if (zend_parse_parameters(argc TSRMLS_CC, "SS|i", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
215216
return;
216217
}
217218

@@ -231,7 +232,7 @@ PHP_FUNCTION(bcadd)
231232
}
232233

233234
Z_STRVAL_P(return_value) = bc_num2str(result);
234-
Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value));
235+
Z_STRSIZE_P(return_value) = strlen(Z_STRVAL_P(return_value));
235236
Z_TYPE_P(return_value) = IS_STRING;
236237
bc_free_num(&first);
237238
bc_free_num(&second);
@@ -245,12 +246,13 @@ PHP_FUNCTION(bcadd)
245246
PHP_FUNCTION(bcsub)
246247
{
247248
char *left, *right;
248-
int left_len, right_len;
249-
long scale_param = 0;
249+
zend_str_size_int left_len, right_len;
250+
php_int_t scale_param = 0;
250251
bc_num first, second, result;
251-
int scale = BCG(bc_precision), argc = ZEND_NUM_ARGS();
252+
php_int_t scale = BCG(bc_precision);
253+
int argc = ZEND_NUM_ARGS();
252254

253-
if (zend_parse_parameters(argc TSRMLS_CC, "ss|l", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
255+
if (zend_parse_parameters(argc TSRMLS_CC, "SS|i", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
254256
return;
255257
}
256258

@@ -270,7 +272,7 @@ PHP_FUNCTION(bcsub)
270272
}
271273

272274
Z_STRVAL_P(return_value) = bc_num2str(result);
273-
Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value));
275+
Z_STRSIZE_P(return_value) = strlen(Z_STRVAL_P(return_value));
274276
Z_TYPE_P(return_value) = IS_STRING;
275277
bc_free_num(&first);
276278
bc_free_num(&second);
@@ -284,12 +286,13 @@ PHP_FUNCTION(bcsub)
284286
PHP_FUNCTION(bcmul)
285287
{
286288
char *left, *right;
287-
int left_len, right_len;
288-
long scale_param = 0;
289+
zend_str_size_int left_len, right_len;
290+
php_int_t scale_param = 0;
289291
bc_num first, second, result;
290-
int scale = BCG(bc_precision), argc = ZEND_NUM_ARGS();
292+
php_int_t scale = BCG(bc_precision);
293+
int argc = ZEND_NUM_ARGS();
291294

292-
if (zend_parse_parameters(argc TSRMLS_CC, "ss|l", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
295+
if (zend_parse_parameters(argc TSRMLS_CC, "SS|i", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
293296
return;
294297
}
295298

@@ -309,7 +312,7 @@ PHP_FUNCTION(bcmul)
309312
}
310313

311314
Z_STRVAL_P(return_value) = bc_num2str(result);
312-
Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value));
315+
Z_STRSIZE_P(return_value) = strlen(Z_STRVAL_P(return_value));
313316
Z_TYPE_P(return_value) = IS_STRING;
314317
bc_free_num(&first);
315318
bc_free_num(&second);
@@ -323,12 +326,13 @@ PHP_FUNCTION(bcmul)
323326
PHP_FUNCTION(bcdiv)
324327
{
325328
char *left, *right;
326-
int left_len, right_len;
327-
long scale_param = 0;
329+
zend_str_size_int left_len, right_len;
330+
php_int_t scale_param = 0;
328331
bc_num first, second, result;
329-
int scale = BCG(bc_precision), argc = ZEND_NUM_ARGS();
332+
php_int_t scale = BCG(bc_precision);
333+
int argc = ZEND_NUM_ARGS();
330334

331-
if (zend_parse_parameters(argc TSRMLS_CC, "ss|l", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
335+
if (zend_parse_parameters(argc TSRMLS_CC, "SS|i", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
332336
return;
333337
}
334338

@@ -348,7 +352,7 @@ PHP_FUNCTION(bcdiv)
348352
result->n_scale = scale;
349353
}
350354
Z_STRVAL_P(return_value) = bc_num2str(result);
351-
Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value));
355+
Z_STRSIZE_P(return_value) = strlen(Z_STRVAL_P(return_value));
352356
Z_TYPE_P(return_value) = IS_STRING;
353357
break;
354358
case -1: /* division by zero */
@@ -368,10 +372,10 @@ PHP_FUNCTION(bcdiv)
368372
PHP_FUNCTION(bcmod)
369373
{
370374
char *left, *right;
371-
int left_len, right_len;
375+
zend_str_size_int left_len, right_len;
372376
bc_num first, second, result;
373377

374-
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &left, &left_len, &right, &right_len) == FAILURE) {
378+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SS", &left, &left_len, &right, &right_len) == FAILURE) {
375379
return;
376380
}
377381

@@ -384,7 +388,7 @@ PHP_FUNCTION(bcmod)
384388
switch (bc_modulo(first, second, &result, 0 TSRMLS_CC)) {
385389
case 0:
386390
Z_STRVAL_P(return_value) = bc_num2str(result);
387-
Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value));
391+
Z_STRSIZE_P(return_value) = strlen(Z_STRVAL_P(return_value));
388392
Z_TYPE_P(return_value) = IS_STRING;
389393
break;
390394
case -1:
@@ -404,12 +408,12 @@ PHP_FUNCTION(bcmod)
404408
PHP_FUNCTION(bcpowmod)
405409
{
406410
char *left, *right, *modulous;
407-
int left_len, right_len, modulous_len;
411+
zend_str_size_int left_len, right_len, modulous_len;
408412
bc_num first, second, mod, result;
409-
long scale = BCG(bc_precision);
413+
php_int_t scale = BCG(bc_precision);
410414
int scale_int;
411415

412-
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sss|l", &left, &left_len, &right, &right_len, &modulous, &modulous_len, &scale) == FAILURE) {
416+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SSS|i", &left, &left_len, &right, &right_len, &modulous, &modulous_len, &scale) == FAILURE) {
413417
return;
414418
}
415419

@@ -428,7 +432,7 @@ PHP_FUNCTION(bcpowmod)
428432
result->n_scale = scale;
429433
}
430434
Z_STRVAL_P(return_value) = bc_num2str(result);
431-
Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value));
435+
Z_STRSIZE_P(return_value) = strlen(Z_STRVAL_P(return_value));
432436
Z_TYPE_P(return_value) = IS_STRING;
433437
} else {
434438
RETVAL_FALSE;
@@ -447,12 +451,13 @@ PHP_FUNCTION(bcpowmod)
447451
PHP_FUNCTION(bcpow)
448452
{
449453
char *left, *right;
450-
int left_len, right_len;
451-
long scale_param = 0;
454+
zend_str_size_int left_len, right_len;
455+
php_int_t scale_param = 0;
452456
bc_num first, second, result;
453-
int scale = BCG(bc_precision), argc = ZEND_NUM_ARGS();
457+
php_int_t scale = BCG(bc_precision);
458+
int argc = ZEND_NUM_ARGS();
454459

455-
if (zend_parse_parameters(argc TSRMLS_CC, "ss|l", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
460+
if (zend_parse_parameters(argc TSRMLS_CC, "SS|i", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
456461
return;
457462
}
458463

@@ -472,7 +477,7 @@ PHP_FUNCTION(bcpow)
472477
}
473478

474479
Z_STRVAL_P(return_value) = bc_num2str(result);
475-
Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value));
480+
Z_STRSIZE_P(return_value) = strlen(Z_STRVAL_P(return_value));
476481
Z_TYPE_P(return_value) = IS_STRING;
477482
bc_free_num(&first);
478483
bc_free_num(&second);
@@ -486,12 +491,13 @@ PHP_FUNCTION(bcpow)
486491
PHP_FUNCTION(bcsqrt)
487492
{
488493
char *left;
489-
int left_len;
490-
long scale_param = 0;
494+
zend_str_size_int left_len;
495+
php_int_t scale_param = 0;
491496
bc_num result;
492-
int scale = BCG(bc_precision), argc = ZEND_NUM_ARGS();
497+
php_int_t scale = BCG(bc_precision);
498+
int argc = ZEND_NUM_ARGS();
493499

494-
if (zend_parse_parameters(argc TSRMLS_CC, "s|l", &left, &left_len, &scale_param) == FAILURE) {
500+
if (zend_parse_parameters(argc TSRMLS_CC, "S|i", &left, &left_len, &scale_param) == FAILURE) {
495501
return;
496502
}
497503

@@ -507,7 +513,7 @@ PHP_FUNCTION(bcsqrt)
507513
result->n_scale = scale;
508514
}
509515
Z_STRVAL_P(return_value) = bc_num2str(result);
510-
Z_STRLEN_P(return_value) = strlen(Z_STRVAL_P(return_value));
516+
Z_STRSIZE_P(return_value) = strlen(Z_STRVAL_P(return_value));
511517
Z_TYPE_P(return_value) = IS_STRING;
512518
} else {
513519
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Square root of negative number");
@@ -523,12 +529,13 @@ PHP_FUNCTION(bcsqrt)
523529
PHP_FUNCTION(bccomp)
524530
{
525531
char *left, *right;
526-
int left_len, right_len;
527-
long scale_param = 0;
532+
zend_str_size_int left_len, right_len;
533+
php_int_t scale_param = 0;
528534
bc_num first, second;
529-
int scale = BCG(bc_precision), argc = ZEND_NUM_ARGS();
535+
php_int_t scale = BCG(bc_precision);
536+
int argc = ZEND_NUM_ARGS();
530537

531-
if (zend_parse_parameters(argc TSRMLS_CC, "ss|l", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
538+
if (zend_parse_parameters(argc TSRMLS_CC, "SS|i", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
532539
return;
533540
}
534541

@@ -554,9 +561,9 @@ PHP_FUNCTION(bccomp)
554561
Sets default scale parameter for all bc math functions */
555562
PHP_FUNCTION(bcscale)
556563
{
557-
long new_scale;
564+
php_int_t new_scale;
558565

559-
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &new_scale) == FAILURE) {
566+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "i", &new_scale) == FAILURE) {
560567
return;
561568
}
562569

ext/bcmath/php_bcmath.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ ZEND_BEGIN_MODULE_GLOBALS(bcmath)
4545
bc_num _zero_;
4646
bc_num _one_;
4747
bc_num _two_;
48-
long bc_precision;
48+
php_int_t bc_precision;
4949
ZEND_END_MODULE_GLOBALS(bcmath)
5050

5151
#ifdef ZTS

0 commit comments

Comments
 (0)