summaryrefslogtreecommitdiffstats
path: root/0001-Another-fix-for-PACKED-array-on-PHP-8.2.patch
blob: 57df4ea4335436fd5ac8ef8313df68fda8661aab (plain)
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
From 9ea164d4d8fb0af74bcb8fd41266582d7469fab1 Mon Sep 17 00:00:00 2001
From: Remi Collet <remi@remirepo.net>
Date: Wed, 1 Mar 2023 16:04:38 +0100
Subject: [PATCH] Another fix for PACKED array on PHP 8.2

---
 kernel/validation.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/kernel/validation.c b/kernel/validation.c
index 8a07e76..a7c4178 100644
--- a/kernel/validation.c
+++ b/kernel/validation.c
@@ -433,7 +433,7 @@ PHP_METHOD(vtiful_validation, valueList)
     int index = 0;
     char **list = NULL;
 
-    Bucket *bucket;
+    zval *data;
     zval *zv_value_list = NULL;
     validation_object *obj = NULL;
 
@@ -465,25 +465,25 @@ PHP_METHOD(vtiful_validation, valueList)
 
     zend_array *za_value_list = Z_ARR_P(zv_value_list);
 
-    ZEND_HASH_FOREACH_BUCKET(za_value_list, bucket)
-            if (Z_TYPE(bucket->val) != IS_STRING) {
+    ZEND_HASH_FOREACH_VAL(za_value_list, data) {
+            if (Z_TYPE_P(data) != IS_STRING) {
                 zend_throw_exception(vtiful_exception_ce, "Arrays can only consist of strings.", 300);
                 return;
             }
-            if (ZSTR_LEN(bucket->val.value.str) == 0 ) {
+            if (Z_STRLEN_P(data) == 0 ) {
                 zend_throw_exception(vtiful_exception_ce, "Array value is empty string.", 301);
                 return;
             }
-    ZEND_HASH_FOREACH_END();
+    } ZEND_HASH_FOREACH_END();
 
     index = 0;
     list = ecalloc(za_value_list->nNumOfElements + 1, sizeof(char *));
 
-    ZEND_HASH_FOREACH_BUCKET(za_value_list, bucket)
-            list[index] = ecalloc(1, bucket->val.value.str->len + 1);
-            strcpy(list[index],bucket->val.value.str->val);
+    ZEND_HASH_FOREACH_VAL(za_value_list, data) {
+            list[index] = ecalloc(1, Z_STRLEN_P(data) + 1);
+            strcpy(list[index], Z_STRVAL_P(data));
             index++;
-    ZEND_HASH_FOREACH_END();
+    } ZEND_HASH_FOREACH_END();
 
     list[index] = NULL;
 
@@ -823,4 +823,4 @@ VTIFUL_STARTUP_FUNCTION(validation) {
 
     return SUCCESS;
 }
-/* }}} */
\ No newline at end of file
+/* }}} */
-- 
2.39.2