diff -up ./include/xlswriter.h.old ./include/xlswriter.h --- ./include/xlswriter.h.old 2020-09-02 10:37:59.430350020 +0200 +++ ./include/xlswriter.h 2020-09-02 10:38:03.129338838 +0200 @@ -183,6 +183,13 @@ static inline chart_object *php_vtiful_c #define lxw_snprintf __builtin_snprintf #endif +#if PHP_VERSION_ID < 80000 +#define PROP_OBJ(zv) (zv) +#else +#define PROP_OBJ(zv) Z_OBJ_P(zv) +#endif + + lxw_format * zval_get_format(zval *handle); xls_resource_write_t * zval_get_resource(zval *handle); xls_resource_chart_t * zval_get_chart(zval *resource); diff -up ./kernel/common.c.old ./kernel/common.c --- ./kernel/common.c.old 2020-09-02 10:37:41.143405296 +0200 +++ ./kernel/common.c 2020-09-02 10:37:47.040387471 +0200 @@ -57,7 +57,7 @@ void call_object_method(zval *object, co zval z_f_name; ZVAL_STRINGL(&z_f_name, function_name, strlen(function_name)); - call_user_function_ex(NULL, object, &z_f_name, ret_val, param_count, params, 0, NULL); + call_user_function(NULL, object, &z_f_name, ret_val, param_count, params); if (Z_ISUNDEF_P(ret_val)) { ZVAL_NULL(ret_val); diff -up ./kernel/excel.c.old ./kernel/excel.c --- ./kernel/excel.c.old 2020-09-02 10:38:16.686297857 +0200 +++ ./kernel/excel.c 2020-09-02 10:38:21.573283085 +0200 @@ -297,7 +297,7 @@ PHP_METHOD(vtiful_xls, fileName) ZVAL_COPY(return_value, getThis()); - GET_CONFIG_PATH(dir_path, vtiful_xls_ce, return_value); + GET_CONFIG_PATH(dir_path, vtiful_xls_ce, PROP_OBJ(return_value)); if(directory_exists(ZSTR_VAL(Z_STR_P(dir_path))) == XLSWRITER_FALSE) { zend_throw_exception(vtiful_exception_ce, "Configure 'path' directory does not exist", 121); @@ -423,7 +423,7 @@ PHP_METHOD(vtiful_xls, constMemory) ZVAL_COPY(return_value, getThis()); - GET_CONFIG_PATH(dir_path, vtiful_xls_ce, return_value); + GET_CONFIG_PATH(dir_path, vtiful_xls_ce, PROP_OBJ(return_value)); xls_object *obj = Z_XLS_P(getThis()); @@ -515,7 +515,7 @@ PHP_METHOD(vtiful_xls, output) { zval rv, *file_path = NULL; - file_path = zend_read_property(vtiful_xls_ce, getThis(), ZEND_STRL(V_XLS_FIL), 0, &rv TSRMLS_DC); + file_path = zend_read_property(vtiful_xls_ce, PROP_OBJ(getThis()), ZEND_STRL(V_XLS_FIL), 0, &rv TSRMLS_DC); xls_object *obj = Z_XLS_P(getThis()); @@ -1066,7 +1066,7 @@ PHP_METHOD(vtiful_xls, openFile) ZVAL_COPY(return_value, getThis()); - GET_CONFIG_PATH(zv_config_path, vtiful_xls_ce, return_value); + GET_CONFIG_PATH(zv_config_path, vtiful_xls_ce, PROP_OBJ(return_value)); xls_object* obj = Z_XLS_P(getThis()); @@ -1177,7 +1177,7 @@ PHP_METHOD(vtiful_xls, putCSV) RETURN_FALSE; } - zv_type = zend_read_property(vtiful_xls_ce, getThis(), ZEND_STRL(V_XLS_TYPE), 0, NULL); + zv_type = zend_read_property(vtiful_xls_ce, PROP_OBJ(getThis()), ZEND_STRL(V_XLS_TYPE), 0, NULL); if (xlsx_to_csv( fp, delimiter_str, delimiter_str_len, enclosure_str, enclosure_str_len, escape_str, escape_str_len, @@ -1215,7 +1215,7 @@ PHP_METHOD(vtiful_xls, putCSVCallback) RETURN_FALSE; } - zv_type = zend_read_property(vtiful_xls_ce, getThis(), ZEND_STRL(V_XLS_TYPE), 0, NULL); + zv_type = zend_read_property(vtiful_xls_ce, PROP_OBJ(getThis()), ZEND_STRL(V_XLS_TYPE), 0, NULL); if (xlsx_to_csv( fp, delimiter_str, delimiter_str_len, enclosure_str, enclosure_str_len, escape_str, escape_str_len, @@ -1238,7 +1238,7 @@ PHP_METHOD(vtiful_xls, getSheetData) RETURN_FALSE; } - zval *zv_type = zend_read_property(vtiful_xls_ce, getThis(), ZEND_STRL(V_XLS_TYPE), 0, NULL); + zval *zv_type = zend_read_property(vtiful_xls_ce, PROP_OBJ(getThis()), ZEND_STRL(V_XLS_TYPE), 0, NULL); if (zv_type != NULL && Z_TYPE_P(zv_type) == IS_ARRAY) { load_sheet_all_data(obj->read_ptr.sheet_t, zv_type, return_value); @@ -1268,7 +1268,7 @@ PHP_METHOD(vtiful_xls, nextRow) } if (zv_type_t == NULL) { - zv_type_t = zend_read_property(vtiful_xls_ce, getThis(), ZEND_STRL(V_XLS_TYPE), 0, NULL); + zv_type_t = zend_read_property(vtiful_xls_ce, PROP_OBJ(getThis()), ZEND_STRL(V_XLS_TYPE), 0, NULL); } load_sheet_current_row_data(obj->read_ptr.sheet_t, return_value, zv_type_t, READ_ROW); @@ -1297,7 +1297,7 @@ PHP_METHOD(vtiful_xls, nextCellCallback) xls_read_callback_data callback_data; - callback_data.zv_type_t = zend_read_property(vtiful_xls_ce, getThis(), ZEND_STRL(V_XLS_TYPE), 0, NULL); + callback_data.zv_type_t = zend_read_property(vtiful_xls_ce, PROP_OBJ(getThis()), ZEND_STRL(V_XLS_TYPE), 0, NULL); callback_data.fci = &fci; callback_data.fci_cache = &fci_cache;