diff options
Diffstat (limited to 'xlswriter-php82.patch')
-rw-r--r-- | xlswriter-php82.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/xlswriter-php82.patch b/xlswriter-php82.patch new file mode 100644 index 0000000..912beda --- /dev/null +++ b/xlswriter-php82.patch @@ -0,0 +1,46 @@ +From 5ec02a705d9171150035b028af622f913088ff7f Mon Sep 17 00:00:00 2001 +From: Remi Collet <remi@remirepo.net> +Date: Fri, 16 Sep 2022 11:43:18 +0200 +Subject: [PATCH] Fix for PACKED array on PHP 8.2 + +--- + kernel/excel.c | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/kernel/excel.c b/kernel/excel.c +index 698db1f..093c1ce 100644 +--- a/kernel/excel.c ++++ b/kernel/excel.c +@@ -627,7 +627,8 @@ PHP_METHOD(vtiful_xls, header) + */ + PHP_METHOD(vtiful_xls, data) + { +- zend_ulong column_index = 0; ++ zend_ulong column_index = 0, index; ++ zend_string *key; + zval *data = NULL, *data_r_value = NULL; + + ZEND_PARSE_PARAMETERS_START(1, 1) +@@ -651,17 +652,16 @@ PHP_METHOD(vtiful_xls, data) + + column_index = 0; + +- ZEND_HASH_FOREACH_BUCKET(Z_ARRVAL_P(data_r_value), Bucket *bucket) ++ ZEND_HASH_FOREACH_KEY_VAL_IND(Z_ARRVAL_P(data_r_value), index, key, data) { + // numeric index rewriting +- if (bucket->key == NULL) { +- column_index = bucket->h; ++ if (key == NULL) { ++ column_index = index; + } +- +- type_writer(&bucket->val, SHEET_CURRENT_LINE(obj), column_index, &obj->write_ptr, NULL, obj->format_ptr.format); ++ type_writer(data, SHEET_CURRENT_LINE(obj), column_index, &obj->write_ptr, NULL, obj->format_ptr.format); + + // next number index + ++column_index; +- ZEND_HASH_FOREACH_END(); ++ } ZEND_HASH_FOREACH_END(); + + SHEET_LINE_ADD(obj) + ZEND_HASH_FOREACH_END(); |