@@ -45,15 +45,21 @@ typedef size_t strsize_t;
4545typedef 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
356352PHP_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