summaryrefslogtreecommitdiffstats
path: root/108.patch
blob: bb4af8bc2c8070c51376e275e968d6e73eb64c5d (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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
From c529551dbb98575df6127e72122bc8c2b63d9fdd Mon Sep 17 00:00:00 2001
From: Remi Collet <remi@remirepo.net>
Date: Wed, 2 Sep 2020 11:24:30 +0200
Subject: [PATCH] fix for 8.0.0beta3

---
 ext/maxminddb.c | 50 +++++++++++++++++++++++--------------------------
 1 file changed, 23 insertions(+), 27 deletions(-)

diff --git a/ext/maxminddb.c b/ext/maxminddb.c
index 4947492..f94d741 100644
--- a/ext/maxminddb.c
+++ b/ext/maxminddb.c
@@ -45,15 +45,21 @@ typedef size_t strsize_t;
 typedef zend_object free_obj_t;
 
 /* For PHP 8 compatibility */
-#ifndef TSRMLS_C
+#if PHP_VERSION_ID < 80000
+
+#define PROP_OBJ(zv) (zv)
+
+#else
+
+#define PROP_OBJ(zv) Z_OBJ_P(zv)
+
 #define TSRMLS_C
-#endif
-#ifndef TSRMLS_CC
 #define TSRMLS_CC
-#endif
-#ifndef TSRMLS_DC
 #define TSRMLS_DC
+
+/* End PHP 8 compatibility */
 #endif
+
 #ifndef ZEND_ACC_CTOR
 #define ZEND_ACC_CTOR 0
 #endif
@@ -334,23 +340,13 @@ PHP_METHOD(MaxMind_Db_Reader, metadata) {
         return;
     }
     MMDB_free_entry_data_list(entry_data_list);
-#if PHP_VERSION_ID >= 80000
-    zend_call_method_with_1_params(Z_OBJ_P(return_value),
+    zend_call_method_with_1_params(PROP_OBJ(return_value),
                                    metadata_ce,
                                    &metadata_ce->constructor,
                                    ZEND_CONSTRUCTOR_FUNC_NAME,
                                    NULL,
                                    &metadata_array);
     zval_ptr_dtor(&metadata_array);
-#else
-    zend_call_method_with_1_params(return_value,
-                                   metadata_ce,
-                                   &metadata_ce->constructor,
-                                   ZEND_CONSTRUCTOR_FUNC_NAME,
-                                   NULL,
-                                   &metadata_array);
-    zval_ptr_dtor(&metadata_array);
-#endif
 }
 
 PHP_METHOD(MaxMind_Db_Reader, close) {
@@ -607,7 +603,7 @@ PHP_METHOD(MaxMind_Db_Reader_Metadata, __construct) {
                                   "binary_format_major_version",
                                   sizeof("binary_format_major_version") - 1))) {
         zend_update_property(metadata_ce,
-                             object,
+                             PROP_OBJ(object),
                              "binaryFormatMajorVersion",
                              sizeof("binaryFormatMajorVersion") - 1,
                              tmp);
@@ -617,7 +613,7 @@ PHP_METHOD(MaxMind_Db_Reader_Metadata, __construct) {
                                   "binary_format_minor_version",
                                   sizeof("binary_format_minor_version") - 1))) {
         zend_update_property(metadata_ce,
-                             object,
+                             PROP_OBJ(object),
                              "binaryFormatMinorVersion",
                              sizeof("binaryFormatMinorVersion") - 1,
                              tmp);
@@ -627,14 +623,14 @@ PHP_METHOD(MaxMind_Db_Reader_Metadata, __construct) {
                                   "build_epoch",
                                   sizeof("build_epoch") - 1))) {
         zend_update_property(
-            metadata_ce, object, "buildEpoch", sizeof("buildEpoch") - 1, tmp);
+            metadata_ce, PROP_OBJ(object), "buildEpoch", sizeof("buildEpoch") - 1, tmp);
     }
 
     if ((tmp = zend_hash_str_find(HASH_OF(metadata_array),
                                   "database_type",
                                   sizeof("database_type") - 1))) {
         zend_update_property(metadata_ce,
-                             object,
+                             PROP_OBJ(object),
                              "databaseType",
                              sizeof("databaseType") - 1,
                              tmp);
@@ -644,27 +640,27 @@ PHP_METHOD(MaxMind_Db_Reader_Metadata, __construct) {
                                   "description",
                                   sizeof("description") - 1))) {
         zend_update_property(
-            metadata_ce, object, "description", sizeof("description") - 1, tmp);
+            metadata_ce, PROP_OBJ(object), "description", sizeof("description") - 1, tmp);
     }
 
     if ((tmp = zend_hash_str_find(HASH_OF(metadata_array),
                                   "ip_version",
                                   sizeof("ip_version") - 1))) {
         zend_update_property(
-            metadata_ce, object, "ipVersion", sizeof("ipVersion") - 1, tmp);
+            metadata_ce, PROP_OBJ(object), "ipVersion", sizeof("ipVersion") - 1, tmp);
     }
 
     if ((tmp = zend_hash_str_find(
              HASH_OF(metadata_array), "languages", sizeof("languages") - 1))) {
         zend_update_property(
-            metadata_ce, object, "languages", sizeof("languages") - 1, tmp);
+            metadata_ce, PROP_OBJ(object), "languages", sizeof("languages") - 1, tmp);
     }
 
     if ((tmp = zend_hash_str_find(HASH_OF(metadata_array),
                                   "record_size",
                                   sizeof("record_size") - 1))) {
         zend_update_property(
-            metadata_ce, object, "recordSize", sizeof("recordSize") - 1, tmp);
+            metadata_ce, PROP_OBJ(object), "recordSize", sizeof("recordSize") - 1, tmp);
         if (Z_TYPE_P(tmp) == IS_LONG) {
             record_size = Z_LVAL_P(tmp);
         }
@@ -672,7 +668,7 @@ PHP_METHOD(MaxMind_Db_Reader_Metadata, __construct) {
 
     if (record_size != 0) {
         zend_update_property_long(metadata_ce,
-                                  object,
+                                  PROP_OBJ(object),
                                   "nodeByteSize",
                                   sizeof("nodeByteSize") - 1,
                                   record_size / 4);
@@ -682,7 +678,7 @@ PHP_METHOD(MaxMind_Db_Reader_Metadata, __construct) {
                                   "node_count",
                                   sizeof("node_count") - 1))) {
         zend_update_property(
-            metadata_ce, object, "nodeCount", sizeof("nodeCount") - 1, tmp);
+            metadata_ce, PROP_OBJ(object), "nodeCount", sizeof("nodeCount") - 1, tmp);
         if (Z_TYPE_P(tmp) == IS_LONG) {
             node_count = Z_LVAL_P(tmp);
         }
@@ -690,7 +686,7 @@ PHP_METHOD(MaxMind_Db_Reader_Metadata, __construct) {
 
     if (record_size != 0) {
         zend_update_property_long(metadata_ce,
-                                  object,
+                                  PROP_OBJ(object),
                                   "searchTreeSize",
                                   sizeof("searchTreeSize") - 1,
                                   record_size * node_count / 4);