Skip to content

Commit 90cf75d

Browse files
remicolletoschwald
authored andcommitted
fix for 8.0.0beta3
1 parent 942553d commit 90cf75d

File tree

1 file changed

+47
-33
lines changed

1 file changed

+47
-33
lines changed

ext/maxminddb.c

Lines changed: 47 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,21 @@ typedef size_t strsize_t;
4545
typedef zend_object free_obj_t;
4646

4747
/* For PHP 8 compatibility */
48-
#ifndef TSRMLS_C
48+
#if PHP_VERSION_ID < 80000
49+
50+
#define PROP_OBJ(zv) (zv)
51+
52+
#else
53+
54+
#define PROP_OBJ(zv) Z_OBJ_P(zv)
55+
4956
#define TSRMLS_C
50-
#endif
51-
#ifndef TSRMLS_CC
5257
#define TSRMLS_CC
53-
#endif
54-
#ifndef TSRMLS_DC
5558
#define TSRMLS_DC
59+
60+
/* End PHP 8 compatibility */
5661
#endif
62+
5763
#ifndef ZEND_ACC_CTOR
5864
#define ZEND_ACC_CTOR 0
5965
#endif
@@ -334,23 +340,13 @@ PHP_METHOD(MaxMind_Db_Reader, metadata) {
334340
return;
335341
}
336342
MMDB_free_entry_data_list(entry_data_list);
337-
#if PHP_VERSION_ID >= 80000
338-
zend_call_method_with_1_params(Z_OBJ_P(return_value),
343+
zend_call_method_with_1_params(PROP_OBJ(return_value),
339344
metadata_ce,
340345
&metadata_ce->constructor,
341346
ZEND_CONSTRUCTOR_FUNC_NAME,
342347
NULL,
343348
&metadata_array);
344349
zval_ptr_dtor(&metadata_array);
345-
#else
346-
zend_call_method_with_1_params(return_value,
347-
metadata_ce,
348-
&metadata_ce->constructor,
349-
ZEND_CONSTRUCTOR_FUNC_NAME,
350-
NULL,
351-
&metadata_array);
352-
zval_ptr_dtor(&metadata_array);
353-
#endif
354350
}
355351

356352
PHP_METHOD(MaxMind_Db_Reader, close) {
@@ -607,7 +603,7 @@ PHP_METHOD(MaxMind_Db_Reader_Metadata, __construct) {
607603
"binary_format_major_version",
608604
sizeof("binary_format_major_version") - 1))) {
609605
zend_update_property(metadata_ce,
610-
object,
606+
PROP_OBJ(object),
611607
"binaryFormatMajorVersion",
612608
sizeof("binaryFormatMajorVersion") - 1,
613609
tmp);
@@ -617,7 +613,7 @@ PHP_METHOD(MaxMind_Db_Reader_Metadata, __construct) {
617613
"binary_format_minor_version",
618614
sizeof("binary_format_minor_version") - 1))) {
619615
zend_update_property(metadata_ce,
620-
object,
616+
PROP_OBJ(object),
621617
"binaryFormatMinorVersion",
622618
sizeof("binaryFormatMinorVersion") - 1,
623619
tmp);
@@ -626,15 +622,18 @@ PHP_METHOD(MaxMind_Db_Reader_Metadata, __construct) {
626622
if ((tmp = zend_hash_str_find(HASH_OF(metadata_array),
627623
"build_epoch",
628624
sizeof("build_epoch") - 1))) {
629-
zend_update_property(
630-
metadata_ce, object, "buildEpoch", sizeof("buildEpoch") - 1, tmp);
625+
zend_update_property(metadata_ce,
626+
PROP_OBJ(object),
627+
"buildEpoch",
628+
sizeof("buildEpoch") - 1,
629+
tmp);
631630
}
632631

633632
if ((tmp = zend_hash_str_find(HASH_OF(metadata_array),
634633
"database_type",
635634
sizeof("database_type") - 1))) {
636635
zend_update_property(metadata_ce,
637-
object,
636+
PROP_OBJ(object),
638637
"databaseType",
639638
sizeof("databaseType") - 1,
640639
tmp);
@@ -643,36 +642,48 @@ PHP_METHOD(MaxMind_Db_Reader_Metadata, __construct) {
643642
if ((tmp = zend_hash_str_find(HASH_OF(metadata_array),
644643
"description",
645644
sizeof("description") - 1))) {
646-
zend_update_property(
647-
metadata_ce, object, "description", sizeof("description") - 1, tmp);
645+
zend_update_property(metadata_ce,
646+
PROP_OBJ(object),
647+
"description",
648+
sizeof("description") - 1,
649+
tmp);
648650
}
649651

650652
if ((tmp = zend_hash_str_find(HASH_OF(metadata_array),
651653
"ip_version",
652654
sizeof("ip_version") - 1))) {
653-
zend_update_property(
654-
metadata_ce, object, "ipVersion", sizeof("ipVersion") - 1, tmp);
655+
zend_update_property(metadata_ce,
656+
PROP_OBJ(object),
657+
"ipVersion",
658+
sizeof("ipVersion") - 1,
659+
tmp);
655660
}
656661

657662
if ((tmp = zend_hash_str_find(
658663
HASH_OF(metadata_array), "languages", sizeof("languages") - 1))) {
659-
zend_update_property(
660-
metadata_ce, object, "languages", sizeof("languages") - 1, tmp);
664+
zend_update_property(metadata_ce,
665+
PROP_OBJ(object),
666+
"languages",
667+
sizeof("languages") - 1,
668+
tmp);
661669
}
662670

663671
if ((tmp = zend_hash_str_find(HASH_OF(metadata_array),
664672
"record_size",
665673
sizeof("record_size") - 1))) {
666-
zend_update_property(
667-
metadata_ce, object, "recordSize", sizeof("recordSize") - 1, tmp);
674+
zend_update_property(metadata_ce,
675+
PROP_OBJ(object),
676+
"recordSize",
677+
sizeof("recordSize") - 1,
678+
tmp);
668679
if (Z_TYPE_P(tmp) == IS_LONG) {
669680
record_size = Z_LVAL_P(tmp);
670681
}
671682
}
672683

673684
if (record_size != 0) {
674685
zend_update_property_long(metadata_ce,
675-
object,
686+
PROP_OBJ(object),
676687
"nodeByteSize",
677688
sizeof("nodeByteSize") - 1,
678689
record_size / 4);
@@ -681,16 +692,19 @@ PHP_METHOD(MaxMind_Db_Reader_Metadata, __construct) {
681692
if ((tmp = zend_hash_str_find(HASH_OF(metadata_array),
682693
"node_count",
683694
sizeof("node_count") - 1))) {
684-
zend_update_property(
685-
metadata_ce, object, "nodeCount", sizeof("nodeCount") - 1, tmp);
695+
zend_update_property(metadata_ce,
696+
PROP_OBJ(object),
697+
"nodeCount",
698+
sizeof("nodeCount") - 1,
699+
tmp);
686700
if (Z_TYPE_P(tmp) == IS_LONG) {
687701
node_count = Z_LVAL_P(tmp);
688702
}
689703
}
690704

691705
if (record_size != 0) {
692706
zend_update_property_long(metadata_ce,
693-
object,
707+
PROP_OBJ(object),
694708
"searchTreeSize",
695709
sizeof("searchTreeSize") - 1,
696710
record_size * node_count / 4);

0 commit comments

Comments
 (0)