Commit e352068
committed
Rename and refactor ZipArchive::openBuffer
Fixes to #14078:
* Rename ZipArchive::openBuffer() to ::openString().
* For consistency with ::open(), return int|bool, don't throw an
exception on error. Provide error information via existing properties
and accessors.
* Fix memory leak when ::openString() is called but ::close() is not
called. Add test.
* Fix memory leak when a call to ::open() is followed by a call to
::openString(). Add test.
* Let libzip own the source, don't call zip_source_keep().
* Share buffer handling with ZipArchive::addFromString().
Elsewhere:
* If there is an error from zip_close() during a call to
ZipArchive::open(), emit a warning but proceed to open the archive,
don't return early. Add test.
* When buffers are saved by ZipArchive::addFromString(), release them
in ZipArchive::close() and ::open(), don't accumulate buffers until
the free_obj handler is called.
* Factor out buffer handling and reuse it in ZipArchive::openString()1 parent d391dcb commit e352068
File tree
7 files changed
+144
-102
lines changed- ext/zip
- tests
7 files changed
+144
-102
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
575 | 575 | | |
576 | 576 | | |
577 | 577 | | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
| 592 | + | |
| 593 | + | |
| 594 | + | |
| 595 | + | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
578 | 648 | | |
579 | 649 | | |
580 | 650 | | |
| |||
1021 | 1091 | | |
1022 | 1092 | | |
1023 | 1093 | | |
1024 | | - | |
1025 | 1094 | | |
1026 | | - | |
1027 | | - | |
1028 | | - | |
1029 | | - | |
1030 | | - | |
1031 | | - | |
1032 | | - | |
1033 | | - | |
1034 | | - | |
1035 | | - | |
1036 | | - | |
1037 | | - | |
1038 | | - | |
| 1095 | + | |
1039 | 1096 | | |
1040 | 1097 | | |
1041 | 1098 | | |
| |||
1047 | 1104 | | |
1048 | 1105 | | |
1049 | 1106 | | |
1050 | | - | |
1051 | 1107 | | |
1052 | | - | |
1053 | | - | |
1054 | | - | |
1055 | | - | |
1056 | 1108 | | |
1057 | 1109 | | |
1058 | 1110 | | |
| |||
1448 | 1500 | | |
1449 | 1501 | | |
1450 | 1502 | | |
1451 | | - | |
1452 | | - | |
1453 | | - | |
1454 | | - | |
1455 | | - | |
1456 | | - | |
1457 | | - | |
1458 | | - | |
1459 | | - | |
1460 | | - | |
1461 | | - | |
1462 | | - | |
1463 | | - | |
| 1503 | + | |
| 1504 | + | |
1464 | 1505 | | |
1465 | 1506 | | |
1466 | 1507 | | |
| |||
1488 | 1529 | | |
1489 | 1530 | | |
1490 | 1531 | | |
1491 | | - | |
1492 | | - | |
| 1532 | + | |
| 1533 | + | |
1493 | 1534 | | |
1494 | 1535 | | |
1495 | 1536 | | |
1496 | 1537 | | |
1497 | | - | |
1498 | 1538 | | |
1499 | 1539 | | |
1500 | 1540 | | |
1501 | 1541 | | |
1502 | 1542 | | |
| 1543 | + | |
| 1544 | + | |
1503 | 1545 | | |
1504 | 1546 | | |
1505 | 1547 | | |
1506 | 1548 | | |
1507 | 1549 | | |
1508 | 1550 | | |
1509 | | - | |
| 1551 | + | |
| 1552 | + | |
1510 | 1553 | | |
1511 | | - | |
| 1554 | + | |
1512 | 1555 | | |
1513 | 1556 | | |
1514 | | - | |
| 1557 | + | |
1515 | 1558 | | |
1516 | 1559 | | |
1517 | 1560 | | |
1518 | | - | |
1519 | | - | |
| 1561 | + | |
| 1562 | + | |
1520 | 1563 | | |
1521 | | - | |
| 1564 | + | |
| 1565 | + | |
1522 | 1566 | | |
1523 | 1567 | | |
1524 | | - | |
1525 | | - | |
1526 | | - | |
| 1568 | + | |
1527 | 1569 | | |
1528 | | - | |
| 1570 | + | |
| 1571 | + | |
1529 | 1572 | | |
1530 | 1573 | | |
1531 | 1574 | | |
| |||
1556 | 1599 | | |
1557 | 1600 | | |
1558 | 1601 | | |
1559 | | - | |
1560 | | - | |
1561 | 1602 | | |
1562 | 1603 | | |
1563 | 1604 | | |
1564 | 1605 | | |
1565 | 1606 | | |
1566 | 1607 | | |
1567 | 1608 | | |
1568 | | - | |
1569 | | - | |
1570 | | - | |
1571 | | - | |
1572 | | - | |
1573 | | - | |
1574 | | - | |
1575 | | - | |
1576 | | - | |
1577 | | - | |
1578 | | - | |
1579 | | - | |
1580 | | - | |
1581 | | - | |
1582 | | - | |
1583 | | - | |
1584 | | - | |
1585 | | - | |
1586 | | - | |
1587 | | - | |
1588 | | - | |
1589 | | - | |
1590 | | - | |
1591 | | - | |
1592 | | - | |
1593 | | - | |
1594 | | - | |
1595 | | - | |
1596 | | - | |
1597 | | - | |
1598 | | - | |
1599 | | - | |
1600 | | - | |
1601 | | - | |
1602 | | - | |
1603 | | - | |
1604 | | - | |
| 1609 | + | |
1605 | 1610 | | |
1606 | 1611 | | |
1607 | 1612 | | |
| |||
1915 | 1920 | | |
1916 | 1921 | | |
1917 | 1922 | | |
1918 | | - | |
1919 | 1923 | | |
1920 | 1924 | | |
1921 | 1925 | | |
| |||
1926 | 1930 | | |
1927 | 1931 | | |
1928 | 1932 | | |
1929 | | - | |
1930 | | - | |
1931 | | - | |
1932 | | - | |
1933 | | - | |
1934 | | - | |
1935 | | - | |
1936 | | - | |
1937 | | - | |
| 1933 | + | |
1938 | 1934 | | |
1939 | 1935 | | |
1940 | 1936 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
71 | | - | |
72 | 71 | | |
73 | 72 | | |
74 | 73 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
646 | 646 | | |
647 | 647 | | |
648 | 648 | | |
649 | | - | |
| 649 | + | |
650 | 650 | | |
651 | 651 | | |
652 | 652 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
0 commit comments