1From df1241852b359cf12c346beaa68de202257efdf1 Mon Sep 17 00:00:00 2001 2From: Remi Collet <remi@remirepo.net> 3Date: Wed, 9 Dec 2020 17:00:46 +0100 4Subject: [PATCH] more work for PHP 8 (#383) 5 6* more work for PHP 8 7 8* split test 9 10Signed-off-by: Remi Collet <remi@remirepo.net> 11Signed-off-by: Adam Duskett <aduskett@gmail.com> 12--- 13 amqp_basic_properties.c | 84 +++++++++++++-------------- 14 amqp_channel.c | 49 +++++++++------- 15 amqp_connection.c | 106 +++++++++++++++++----------------- 16 amqp_connection_resource.c | 12 ++-- 17 amqp_decimal.c | 8 +-- 18 amqp_envelope.c | 12 ++-- 19 amqp_exchange.c | 22 +++---- 20 amqp_queue.c | 38 ++++++------ 21 amqp_timestamp.c | 6 +- 22 amqp_type.c | 6 +- 23 php5_support.h | 2 + 24 php7_support.h | 9 +++ 25 php_amqp.h | 8 +-- 26 tests/amqptimestamp.phpt | 4 +- 27 tests/amqptimestamp_php8.phpt | 60 +++++++++++++++++++ 28 tests/bug_61533.phpt | 2 +- 29 16 files changed, 254 insertions(+), 174 deletions(-) 30 create mode 100644 tests/amqptimestamp_php8.phpt 31 32diff --git a/amqp_basic_properties.c b/amqp_basic_properties.c 33index 69b813e..5375f44 100644 34--- a/amqp_basic_properties.c 35+++ b/amqp_basic_properties.c 36@@ -70,7 +70,7 @@ void php_amqp_basic_properties_set_empty_headers(zval *obj TSRMLS_DC) { 37 PHP5to7_MAYBE_INIT(headers); 38 PHP5to7_ARRAY_INIT(headers); 39 40- zend_update_property(this_ce, obj, ZEND_STRL("headers"), PHP5to7_MAYBE_PTR(headers) TSRMLS_CC); 41+ zend_update_property(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("headers"), PHP5to7_MAYBE_PTR(headers) TSRMLS_CC); 42 43 PHP5to7_MAYBE_DESTROY(headers); 44 } 45@@ -118,29 +118,29 @@ static PHP_METHOD(AMQPBasicProperties, __construct) { 46 ) == FAILURE) { 47 return; 48 } 49- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("content_type"), content_type, content_type_len TSRMLS_CC); 50- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("content_encoding"), content_encoding, content_encoding_len TSRMLS_CC); 51+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("content_type"), content_type, content_type_len TSRMLS_CC); 52+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("content_encoding"), content_encoding, content_encoding_len TSRMLS_CC); 53 54 if (headers != NULL) { 55- zend_update_property(this_ce, getThis(), ZEND_STRL("headers"), headers TSRMLS_CC); 56+ zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("headers"), headers TSRMLS_CC); 57 } else { 58 php_amqp_basic_properties_set_empty_headers(getThis() TSRMLS_CC); 59 } 60 61- zend_update_property_long(this_ce, getThis(), ZEND_STRL("delivery_mode"), delivery_mode TSRMLS_CC); 62- zend_update_property_long(this_ce, getThis(), ZEND_STRL("priority"), priority TSRMLS_CC); 63+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("delivery_mode"), delivery_mode TSRMLS_CC); 64+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("priority"), priority TSRMLS_CC); 65 66- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("correlation_id"), correlation_id, correlation_id_len TSRMLS_CC); 67- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("reply_to"), reply_to, reply_to_len TSRMLS_CC); 68- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("expiration"), expiration, expiration_len TSRMLS_CC); 69- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("message_id"), message_id, message_id_len TSRMLS_CC); 70+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("correlation_id"), correlation_id, correlation_id_len TSRMLS_CC); 71+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("reply_to"), reply_to, reply_to_len TSRMLS_CC); 72+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("expiration"), expiration, expiration_len TSRMLS_CC); 73+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("message_id"), message_id, message_id_len TSRMLS_CC); 74 75- zend_update_property_long(this_ce, getThis(), ZEND_STRL("timestamp"), timestamp TSRMLS_CC); 76+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("timestamp"), timestamp TSRMLS_CC); 77 78- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("type"), type, type_len TSRMLS_CC); 79- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("user_id"), user_id, user_id_len TSRMLS_CC); 80- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("app_id"), app_id, app_id_len TSRMLS_CC); 81- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("cluster_id"), cluster_id, cluster_id_len TSRMLS_CC); 82+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("type"), type, type_len TSRMLS_CC); 83+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("user_id"), user_id, user_id_len TSRMLS_CC); 84+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("app_id"), app_id, app_id_len TSRMLS_CC); 85+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("cluster_id"), cluster_id, cluster_id_len TSRMLS_CC); 86 } 87 /* }}} */ 88 89@@ -460,7 +460,7 @@ void parse_amqp_table(amqp_table_t *table, zval *result TSRMLS_DC) { 90 object_init_ex(PHP5to7_MAYBE_PTR(value), amqp_timestamp_class_entry); 91 92 zend_call_method_with_1_params( 93- &value, 94+ PHP5to8_OBJ_PROP(&value), 95 amqp_timestamp_class_entry, 96 NULL, 97 "__construct", 98@@ -488,7 +488,7 @@ void parse_amqp_table(amqp_table_t *table, zval *result TSRMLS_DC) { 99 object_init_ex(PHP5to7_MAYBE_PTR(value), amqp_decimal_class_entry); 100 101 zend_call_method_with_2_params( 102- &value, 103+ PHP5to8_OBJ_PROP(&value), 104 amqp_decimal_class_entry, 105 NULL, 106 "__construct", 107@@ -525,93 +525,93 @@ void php_amqp_basic_properties_extract(amqp_basic_properties_t *p, zval *obj TSR 108 PHP5to7_ARRAY_INIT(headers); 109 110 if (p->_flags & AMQP_BASIC_CONTENT_TYPE_FLAG) { 111- zend_update_property_stringl(this_ce, obj, ZEND_STRL("content_type"), (const char *) p->content_type.bytes, (PHP5to7_param_str_len_type_t) p->content_type.len TSRMLS_CC); 112+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("content_type"), (const char *) p->content_type.bytes, (PHP5to7_param_str_len_type_t) p->content_type.len TSRMLS_CC); 113 } else { 114 /* BC */ 115- zend_update_property_stringl(this_ce, obj, ZEND_STRL("content_type"), "", 0 TSRMLS_CC); 116+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("content_type"), "", 0 TSRMLS_CC); 117 } 118 119 if (p->_flags & AMQP_BASIC_CONTENT_ENCODING_FLAG) { 120- zend_update_property_stringl(this_ce, obj, ZEND_STRL("content_encoding"), (const char *) p->content_encoding.bytes, (PHP5to7_param_str_len_type_t) p->content_encoding.len TSRMLS_CC); 121+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("content_encoding"), (const char *) p->content_encoding.bytes, (PHP5to7_param_str_len_type_t) p->content_encoding.len TSRMLS_CC); 122 } else { 123 /* BC */ 124- zend_update_property_stringl(this_ce, obj, ZEND_STRL("content_encoding"), "", 0 TSRMLS_CC); 125+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("content_encoding"), "", 0 TSRMLS_CC); 126 } 127 128 if (p->_flags & AMQP_BASIC_HEADERS_FLAG) { 129 parse_amqp_table(&(p->headers), PHP5to7_MAYBE_PTR(headers) TSRMLS_CC); 130 } 131 132- zend_update_property(this_ce, obj, ZEND_STRL("headers"), PHP5to7_MAYBE_PTR(headers) TSRMLS_CC); 133+ zend_update_property(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("headers"), PHP5to7_MAYBE_PTR(headers) TSRMLS_CC); 134 135 if (p->_flags & AMQP_BASIC_DELIVERY_MODE_FLAG) { 136- zend_update_property_long(this_ce, obj, ZEND_STRL("delivery_mode"), (PHP5to7_param_long_type_t) p->delivery_mode TSRMLS_CC); 137+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("delivery_mode"), (PHP5to7_param_long_type_t) p->delivery_mode TSRMLS_CC); 138 } else { 139 /* BC */ 140- zend_update_property_long(this_ce, obj, ZEND_STRL("delivery_mode"), AMQP_DELIVERY_NONPERSISTENT TSRMLS_CC); 141+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("delivery_mode"), AMQP_DELIVERY_NONPERSISTENT TSRMLS_CC); 142 } 143 144 if (p->_flags & AMQP_BASIC_PRIORITY_FLAG) { 145- zend_update_property_long(this_ce, obj, ZEND_STRL("priority"), (PHP5to7_param_long_type_t) p->priority TSRMLS_CC); 146+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("priority"), (PHP5to7_param_long_type_t) p->priority TSRMLS_CC); 147 } else { 148 /* BC */ 149- zend_update_property_long(this_ce, obj, ZEND_STRL("priority"), 0 TSRMLS_CC); 150+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("priority"), 0 TSRMLS_CC); 151 } 152 153 if (p->_flags & AMQP_BASIC_CORRELATION_ID_FLAG) { 154- zend_update_property_stringl(this_ce, obj, ZEND_STRL("correlation_id"), (const char *) p->correlation_id.bytes, (PHP5to7_param_str_len_type_t) p->correlation_id.len TSRMLS_CC); 155+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("correlation_id"), (const char *) p->correlation_id.bytes, (PHP5to7_param_str_len_type_t) p->correlation_id.len TSRMLS_CC); 156 } else { 157 /* BC */ 158- zend_update_property_stringl(this_ce, obj, ZEND_STRL("correlation_id"), "", 0 TSRMLS_CC); 159+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("correlation_id"), "", 0 TSRMLS_CC); 160 } 161 162 if (p->_flags & AMQP_BASIC_REPLY_TO_FLAG) { 163- zend_update_property_stringl(this_ce, obj, ZEND_STRL("reply_to"), (const char *) p->reply_to.bytes, (PHP5to7_param_str_len_type_t) p->reply_to.len TSRMLS_CC); 164+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("reply_to"), (const char *) p->reply_to.bytes, (PHP5to7_param_str_len_type_t) p->reply_to.len TSRMLS_CC); 165 } else { 166 /* BC */ 167- zend_update_property_stringl(this_ce, obj, ZEND_STRL("reply_to"), "", 0 TSRMLS_CC); 168+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("reply_to"), "", 0 TSRMLS_CC); 169 } 170 171 if (p->_flags & AMQP_BASIC_EXPIRATION_FLAG) { 172- zend_update_property_stringl(this_ce, obj, ZEND_STRL("expiration"), (const char *) p->expiration.bytes, (PHP5to7_param_str_len_type_t) p->expiration.len TSRMLS_CC); 173+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("expiration"), (const char *) p->expiration.bytes, (PHP5to7_param_str_len_type_t) p->expiration.len TSRMLS_CC); 174 } else { 175 /* BC */ 176- zend_update_property_stringl(this_ce, obj, ZEND_STRL("expiration"), "", 0 TSRMLS_CC); 177+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("expiration"), "", 0 TSRMLS_CC); 178 } 179 180 if (p->_flags & AMQP_BASIC_MESSAGE_ID_FLAG) { 181- zend_update_property_stringl(this_ce, obj, ZEND_STRL("message_id"), (const char *) p->message_id.bytes, (PHP5to7_param_str_len_type_t) p->message_id.len TSRMLS_CC); 182+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("message_id"), (const char *) p->message_id.bytes, (PHP5to7_param_str_len_type_t) p->message_id.len TSRMLS_CC); 183 } else { 184 /* BC */ 185- zend_update_property_stringl(this_ce, obj, ZEND_STRL("message_id"), "", 0 TSRMLS_CC); 186+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("message_id"), "", 0 TSRMLS_CC); 187 } 188 189 if (p->_flags & AMQP_BASIC_TIMESTAMP_FLAG) { 190- zend_update_property_long(this_ce, obj, ZEND_STRL("timestamp"), (PHP5to7_param_long_type_t) p->timestamp TSRMLS_CC); 191+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("timestamp"), (PHP5to7_param_long_type_t) p->timestamp TSRMLS_CC); 192 } else { 193 /* BC */ 194- zend_update_property_long(this_ce, obj, ZEND_STRL("timestamp"), 0 TSRMLS_CC); 195+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("timestamp"), 0 TSRMLS_CC); 196 } 197 198 if (p->_flags & AMQP_BASIC_TYPE_FLAG) { 199- zend_update_property_stringl(this_ce, obj, ZEND_STRL("type"), (const char *) p->type.bytes, (PHP5to7_param_str_len_type_t) p->type.len TSRMLS_CC); 200+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("type"), (const char *) p->type.bytes, (PHP5to7_param_str_len_type_t) p->type.len TSRMLS_CC); 201 } else { 202 /* BC */ 203- zend_update_property_stringl(this_ce, obj, ZEND_STRL("type"), "", 0 TSRMLS_CC); 204+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("type"), "", 0 TSRMLS_CC); 205 } 206 207 if (p->_flags & AMQP_BASIC_USER_ID_FLAG) { 208- zend_update_property_stringl(this_ce, obj, ZEND_STRL("user_id"), (const char *) p->user_id.bytes, (PHP5to7_param_str_len_type_t) p->user_id.len TSRMLS_CC); 209+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("user_id"), (const char *) p->user_id.bytes, (PHP5to7_param_str_len_type_t) p->user_id.len TSRMLS_CC); 210 } else { 211 /* BC */ 212- zend_update_property_stringl(this_ce, obj, ZEND_STRL("user_id"), "", 0 TSRMLS_CC); 213+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("user_id"), "", 0 TSRMLS_CC); 214 } 215 216 if (p->_flags & AMQP_BASIC_APP_ID_FLAG) { 217- zend_update_property_stringl(this_ce, obj, ZEND_STRL("app_id"), (const char *) p->app_id.bytes, (PHP5to7_param_str_len_type_t) p->app_id.len TSRMLS_CC); 218+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("app_id"), (const char *) p->app_id.bytes, (PHP5to7_param_str_len_type_t) p->app_id.len TSRMLS_CC); 219 } else { 220 /* BC */ 221- zend_update_property_stringl(this_ce, obj, ZEND_STRL("app_id"), "", 0 TSRMLS_CC); 222+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(obj), ZEND_STRL("app_id"), "", 0 TSRMLS_CC); 223 } 224 225 PHP5to7_MAYBE_DESTROY(headers); 226diff --git a/amqp_channel.c b/amqp_channel.c 227index ef9552a..493c6d3 100644 228--- a/amqp_channel.c 229+++ b/amqp_channel.c 230@@ -152,10 +152,15 @@ static zval * php_amqp_get_fci_gc_data(zend_fcall_info *fci, zval *gc_data) { 231 return gc_data; 232 } 233 234+#if PHP_MAJOR_VERSION < 8 235 static HashTable *amqp_channel_gc(zval *object, zval **table, int *n) /* {{{ */ 236 { 237- amqp_channel_object *channel = PHP_AMQP_GET_CHANNEL(object); 238- 239+ amqp_channel_object *channel = PHP_AMQP_GET_CHANNEL(object); 240+#else 241+static HashTable *amqp_channel_gc(zend_object *object, zval **table, int *n) /* {{{ */ 242+{ 243+ amqp_channel_object *channel = php_amqp_channel_object_fetch(object); 244+#endif 245 int basic_return_cnt = php_amqp_get_fci_gc_data_count(&channel->callbacks.basic_return.fci); 246 int basic_ack_cnt = php_amqp_get_fci_gc_data_count(&channel->callbacks.basic_ack.fci); 247 int basic_nack_cnt = php_amqp_get_fci_gc_data_count(&channel->callbacks.basic_nack.fci); 248@@ -249,7 +254,7 @@ static HashTable *amqp_channel_gc(zval *object, zval ***table, int *n TSRMLS_DC) 249 *table = channel->gc_data; 250 *n = cnt; 251 252- return zend_std_get_properties(object TSRMLS_CC); 253+ return zend_std_get_properties(PHP5to8_OBJ_PROP(object) TSRMLS_CC); 254 } /* }}} */ 255 256 #endif 257@@ -331,7 +336,7 @@ static PHP_METHOD(amqp_channel_class, __construct) 258 amqp_connection_object *connection; 259 260 /* Parse out the method parameters */ 261- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o", &connection_object) == FAILURE) { 262+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &connection_object, amqp_connection_class_entry) == FAILURE) { 263 zend_throw_exception(amqp_channel_exception_class_entry, "Parameter must be an instance of AMQPConnection.", 0 TSRMLS_CC); 264 RETURN_NULL(); 265 } 266@@ -341,7 +346,7 @@ static PHP_METHOD(amqp_channel_class, __construct) 267 PHP5to7_MAYBE_INIT(consumers); 268 PHP5to7_ARRAY_INIT(consumers); 269 270- zend_update_property(this_ce, getThis(), ZEND_STRL("consumers"), PHP5to7_MAYBE_PTR(consumers) TSRMLS_CC); 271+ zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("consumers"), PHP5to7_MAYBE_PTR(consumers) TSRMLS_CC); 272 273 PHP5to7_MAYBE_DESTROY(consumers); 274 275@@ -351,16 +356,16 @@ static PHP_METHOD(amqp_channel_class, __construct) 276 #endif 277 278 /* Set the prefetch count */ 279- zend_update_property_long(this_ce, getThis(), ZEND_STRL("prefetch_count"), INI_INT("amqp.prefetch_count") TSRMLS_CC); 280+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("prefetch_count"), INI_INT("amqp.prefetch_count") TSRMLS_CC); 281 282 /* Set the prefetch size */ 283- zend_update_property_long(this_ce, getThis(), ZEND_STRL("prefetch_size"), INI_INT("amqp.prefetch_size") TSRMLS_CC); 284+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("prefetch_size"), INI_INT("amqp.prefetch_size") TSRMLS_CC); 285 286 /* Set the global prefetch count */ 287- zend_update_property_long(this_ce, getThis(), ZEND_STRL("global_prefetch_count"), INI_INT("amqp.global_prefetch_count") TSRMLS_CC); 288+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("global_prefetch_count"), INI_INT("amqp.global_prefetch_count") TSRMLS_CC); 289 290 /* Set the global prefetch size */ 291- zend_update_property_long(this_ce, getThis(), ZEND_STRL("global_prefetch_size"), INI_INT("amqp.global_prefetch_size") TSRMLS_CC); 292+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("global_prefetch_size"), INI_INT("amqp.global_prefetch_size") TSRMLS_CC); 293 294 /* Pull out and verify the connection */ 295 connection = PHP_AMQP_GET_CONNECTION(connection_object); 296@@ -376,7 +381,7 @@ static PHP_METHOD(amqp_channel_class, __construct) 297 return; 298 } 299 300- zend_update_property(this_ce, getThis(), ZEND_STRL("connection"), connection_object TSRMLS_CC); 301+ zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("connection"), connection_object TSRMLS_CC); 302 303 channel_resource = (amqp_channel_resource*)ecalloc(1, sizeof(amqp_channel_resource)); 304 channel->channel_resource = channel_resource; 305@@ -580,8 +585,8 @@ static PHP_METHOD(amqp_channel_class, setPrefetchCount) 306 } 307 308 /* Set the prefetch count - the implication is to disable the size */ 309- zend_update_property_long(this_ce, getThis(), ZEND_STRL("prefetch_count"), prefetch_count TSRMLS_CC); 310- zend_update_property_long(this_ce, getThis(), ZEND_STRL("prefetch_size"), 0 TSRMLS_CC); 311+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("prefetch_count"), prefetch_count TSRMLS_CC); 312+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("prefetch_size"), 0 TSRMLS_CC); 313 314 RETURN_TRUE; 315 } 316@@ -659,8 +664,8 @@ static PHP_METHOD(amqp_channel_class, setPrefetchSize) 317 } 318 319 /* Set the prefetch size - the implication is to disable the count */ 320- zend_update_property_long(this_ce, getThis(), ZEND_STRL("prefetch_count"), 0 TSRMLS_CC); 321- zend_update_property_long(this_ce, getThis(), ZEND_STRL("prefetch_size"), prefetch_size TSRMLS_CC); 322+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("prefetch_count"), 0 TSRMLS_CC); 323+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("prefetch_size"), prefetch_size TSRMLS_CC); 324 325 RETURN_TRUE; 326 } 327@@ -715,8 +720,8 @@ static PHP_METHOD(amqp_channel_class, setGlobalPrefetchCount) 328 } 329 330 /* Set the global prefetch count - the implication is to disable the size */ 331- zend_update_property_long(this_ce, getThis(), ZEND_STRL("global_prefetch_count"), global_prefetch_count TSRMLS_CC); 332- zend_update_property_long(this_ce, getThis(), ZEND_STRL("global_prefetch_size"), 0 TSRMLS_CC); 333+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("global_prefetch_count"), global_prefetch_count TSRMLS_CC); 334+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("global_prefetch_size"), 0 TSRMLS_CC); 335 336 RETURN_TRUE; 337 } 338@@ -771,8 +776,8 @@ static PHP_METHOD(amqp_channel_class, setGlobalPrefetchSize) 339 } 340 341 /* Set the global prefetch size - the implication is to disable the count */ 342- zend_update_property_long(this_ce, getThis(), ZEND_STRL("global_prefetch_count"), 0 TSRMLS_CC); 343- zend_update_property_long(this_ce, getThis(), ZEND_STRL("global_prefetch_size"), global_prefetch_size TSRMLS_CC); 344+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("global_prefetch_count"), 0 TSRMLS_CC); 345+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("global_prefetch_size"), global_prefetch_size TSRMLS_CC); 346 347 RETURN_TRUE; 348 } 349@@ -808,11 +813,11 @@ static PHP_METHOD(amqp_channel_class, qos) 350 351 /* Set the prefetch size and prefetch count */ 352 if (global) { 353- zend_update_property_long(this_ce, getThis(), ZEND_STRL("global_prefetch_size"), prefetch_size TSRMLS_CC); 354- zend_update_property_long(this_ce, getThis(), ZEND_STRL("global_prefetch_count"), prefetch_count TSRMLS_CC); 355+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("global_prefetch_size"), prefetch_size TSRMLS_CC); 356+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("global_prefetch_count"), prefetch_count TSRMLS_CC); 357 } else { 358- zend_update_property_long(this_ce, getThis(), ZEND_STRL("prefetch_size"), prefetch_size TSRMLS_CC); 359- zend_update_property_long(this_ce, getThis(), ZEND_STRL("prefetch_count"), prefetch_count TSRMLS_CC); 360+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("prefetch_size"), prefetch_size TSRMLS_CC); 361+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("prefetch_count"), prefetch_count TSRMLS_CC); 362 } 363 364 /* If we are already connected, set the new prefetch count */ 365diff --git a/amqp_connection.c b/amqp_connection.c 366index 5891a4f..466501a 100644 367--- a/amqp_connection.c 368+++ b/amqp_connection.c 369@@ -68,9 +68,9 @@ zend_object_handlers amqp_connection_object_handlers; 370 convert_to_string(PHP5to7_MAYBE_DEREF(zdata)); \ 371 } \ 372 if (zdata && Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) > 0) { \ 373- zend_update_property_string(this_ce, getThis(), ZEND_STRL(name), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); \ 374+ zend_update_property_string(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL(name), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); \ 375 } else { \ 376- zend_update_property_string(this_ce, getThis(), ZEND_STRL(name), INI_STR("amqp." name) TSRMLS_CC); \ 377+ zend_update_property_string(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL(name), INI_STR("amqp." name) TSRMLS_CC); \ 378 } 379 380 #define PHP_AMQP_EXTRACT_CONNECTION_BOOL(name) \ 381@@ -80,9 +80,9 @@ zend_object_handlers amqp_connection_object_handlers; 382 convert_to_long(PHP5to7_MAYBE_DEREF(zdata)); \ 383 } \ 384 if (zdata) { \ 385- zend_update_property_bool(this_ce, getThis(), ZEND_STRL(name), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); \ 386+ zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL(name), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); \ 387 } else { \ 388- zend_update_property_bool(this_ce, getThis(), ZEND_STRL(name), INI_INT("amqp." name) TSRMLS_CC); \ 389+ zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL(name), INI_INT("amqp." name) TSRMLS_CC); \ 390 } 391 392 static int php_amqp_connection_resource_deleter(PHP5to7_zend_resource_le_t *el, amqp_connection_resource *connection_resource TSRMLS_DC) 393@@ -344,13 +344,13 @@ static PHP_METHOD(amqp_connection_class, __construct) 394 /* Validate the given login */ 395 if (zdata && Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) > 0) { 396 if (Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) < 128) { 397- zend_update_property(this_ce, getThis(), ZEND_STRL("login"), PHP5to7_MAYBE_DEREF(zdata)TSRMLS_CC); 398+ zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("login"), PHP5to7_MAYBE_DEREF(zdata)TSRMLS_CC); 399 } else { 400 zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'login' exceeds 128 character limit.", 0 TSRMLS_CC); 401 return; 402 } 403 } else { 404- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("login"), INI_STR("amqp.login"), (PHP5to7_param_str_len_type_t) (strlen(INI_STR("amqp.login")) > 128 ? 128 : strlen(INI_STR("amqp.login"))) TSRMLS_CC); 405+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("login"), INI_STR("amqp.login"), (PHP5to7_param_str_len_type_t) (strlen(INI_STR("amqp.login")) > 128 ? 128 : strlen(INI_STR("amqp.login"))) TSRMLS_CC); 406 } 407 408 /* Pull the password out of the $params array */ 409@@ -362,13 +362,13 @@ static PHP_METHOD(amqp_connection_class, __construct) 410 /* Validate the given password */ 411 if (zdata && Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) > 0) { 412 if (Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) < 128) { 413- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("password"), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)), Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 414+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("password"), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)), Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 415 } else { 416 zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'password' exceeds 128 character limit.", 0 TSRMLS_CC); 417 return; 418 } 419 } else { 420- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("password"), INI_STR("amqp.password"), (PHP5to7_param_str_len_type_t) (strlen(INI_STR("amqp.password")) > 128 ? 128 : strlen(INI_STR("amqp.password"))) TSRMLS_CC); 421+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("password"), INI_STR("amqp.password"), (PHP5to7_param_str_len_type_t) (strlen(INI_STR("amqp.password")) > 128 ? 128 : strlen(INI_STR("amqp.password"))) TSRMLS_CC); 422 } 423 424 /* Pull the host out of the $params array */ 425@@ -380,13 +380,13 @@ static PHP_METHOD(amqp_connection_class, __construct) 426 /* Validate the given host */ 427 if (zdata && Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) > 0) { 428 if (Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) < 128) { 429- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("host"), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)), Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 430+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("host"), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)), Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 431 } else { 432 zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'host' exceeds 128 character limit.", 0 TSRMLS_CC); 433 return; 434 } 435 } else { 436- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("host"), INI_STR("amqp.host"), (PHP5to7_param_str_len_type_t) (strlen(INI_STR("amqp.host")) > 128 ? 128 : strlen(INI_STR("amqp.host"))) TSRMLS_CC); 437+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("host"), INI_STR("amqp.host"), (PHP5to7_param_str_len_type_t) (strlen(INI_STR("amqp.host")) > 128 ? 128 : strlen(INI_STR("amqp.host"))) TSRMLS_CC); 438 } 439 440 /* Pull the vhost out of the $params array */ 441@@ -398,25 +398,25 @@ static PHP_METHOD(amqp_connection_class, __construct) 442 /* Validate the given vhost */ 443 if (zdata && Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) > 0) { 444 if (Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) < 128) { 445- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("vhost"), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)), Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 446+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("vhost"), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)), Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 447 } else { 448 zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'vhost' exceeds 128 character limit.", 0 TSRMLS_CC); 449 return; 450 } 451 } else { 452- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("vhost"), INI_STR("amqp.vhost"), (PHP5to7_param_str_len_type_t) (strlen(INI_STR("amqp.vhost")) > 128 ? 128 : strlen(INI_STR("amqp.vhost"))) TSRMLS_CC); 453+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("vhost"), INI_STR("amqp.vhost"), (PHP5to7_param_str_len_type_t) (strlen(INI_STR("amqp.vhost")) > 128 ? 128 : strlen(INI_STR("amqp.vhost"))) TSRMLS_CC); 454 455 } 456 457- zend_update_property_long(this_ce, getThis(), ZEND_STRL("port"), INI_INT("amqp.port") TSRMLS_CC); 458+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("port"), INI_INT("amqp.port") TSRMLS_CC); 459 460 if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "port", sizeof("port"), zdata)) { 461 SEPARATE_ZVAL(zdata); 462 convert_to_long(PHP5to7_MAYBE_DEREF(zdata)); 463- zend_update_property_long(this_ce, getThis(), ZEND_STRL("port"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 464+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("port"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 465 } 466 467- zend_update_property_double(this_ce, getThis(), ZEND_STRL("read_timeout"), INI_FLT("amqp.read_timeout") TSRMLS_CC); 468+ zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("read_timeout"), INI_FLT("amqp.read_timeout") TSRMLS_CC); 469 470 if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "read_timeout", sizeof("read_timeout"), zdata)) { 471 SEPARATE_ZVAL(zdata); 472@@ -424,7 +424,7 @@ static PHP_METHOD(amqp_connection_class, __construct) 473 if (Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) < 0) { 474 zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'read_timeout' must be greater than or equal to zero.", 0 TSRMLS_CC); 475 } else { 476- zend_update_property_double(this_ce, getThis(), ZEND_STRL("read_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 477+ zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("read_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 478 } 479 480 if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "timeout", sizeof("timeout"), zdata)) { 481@@ -441,7 +441,7 @@ static PHP_METHOD(amqp_connection_class, __construct) 482 if (Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) < 0) { 483 zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'timeout' must be greater than or equal to zero.", 0 TSRMLS_CC); 484 } else { 485- zend_update_property_double(this_ce, getThis(), ZEND_STRL("read_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 486+ zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("read_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 487 } 488 } else { 489 490@@ -450,17 +450,17 @@ static PHP_METHOD(amqp_connection_class, __construct) 491 php_error_docref(NULL TSRMLS_CC, E_DEPRECATED, "INI setting 'amqp.timeout' is deprecated; use 'amqp.read_timeout' instead"); 492 493 if (strcmp(DEFAULT_READ_TIMEOUT, INI_STR("amqp.read_timeout")) == 0) { 494- zend_update_property_double(this_ce, getThis(), ZEND_STRL("read_timeout"), INI_FLT("amqp.timeout") TSRMLS_CC); 495+ zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("read_timeout"), INI_FLT("amqp.timeout") TSRMLS_CC); 496 } else { 497 php_error_docref(NULL TSRMLS_CC, E_NOTICE, "INI setting 'amqp.read_timeout' will be used instead of 'amqp.timeout'"); 498- zend_update_property_double(this_ce, getThis(), ZEND_STRL("read_timeout"), INI_FLT("amqp.read_timeout") TSRMLS_CC); 499+ zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("read_timeout"), INI_FLT("amqp.read_timeout") TSRMLS_CC); 500 } 501 } else { 502- zend_update_property_double(this_ce, getThis(), ZEND_STRL("read_timeout"), INI_FLT("amqp.read_timeout") TSRMLS_CC); 503+ zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("read_timeout"), INI_FLT("amqp.read_timeout") TSRMLS_CC); 504 } 505 } 506 507- zend_update_property_double(this_ce, getThis(), ZEND_STRL("write_timeout"), INI_FLT("amqp.write_timeout") TSRMLS_CC); 508+ zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("write_timeout"), INI_FLT("amqp.write_timeout") TSRMLS_CC); 509 510 if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "write_timeout", sizeof("write_timeout"), zdata)) { 511 SEPARATE_ZVAL(zdata); 512@@ -468,11 +468,11 @@ static PHP_METHOD(amqp_connection_class, __construct) 513 if (Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) < 0) { 514 zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'write_timeout' must be greater than or equal to zero.", 0 TSRMLS_CC); 515 } else { 516- zend_update_property_double(this_ce, getThis(), ZEND_STRL("write_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 517+ zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("write_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 518 } 519 } 520 521- zend_update_property_double(this_ce, getThis(), ZEND_STRL("rpc_timeout"), INI_FLT("amqp.rpc_timeout") TSRMLS_CC); 522+ zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("rpc_timeout"), INI_FLT("amqp.rpc_timeout") TSRMLS_CC); 523 524 if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "rpc_timeout", sizeof("rpc_timeout"), zdata)) { 525 SEPARATE_ZVAL(zdata); 526@@ -480,11 +480,11 @@ static PHP_METHOD(amqp_connection_class, __construct) 527 if (Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) < 0) { 528 zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'rpc_timeout' must be greater than or equal to zero.", 0 TSRMLS_CC); 529 } else { 530- zend_update_property_double(this_ce, getThis(), ZEND_STRL("rpc_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 531+ zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("rpc_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 532 } 533 } 534 535- zend_update_property_double(this_ce, getThis(), ZEND_STRL("connect_timeout"), INI_FLT("amqp.connect_timeout") TSRMLS_CC); 536+ zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("connect_timeout"), INI_FLT("amqp.connect_timeout") TSRMLS_CC); 537 538 if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "connect_timeout", sizeof("connect_timeout"), zdata)) { 539 SEPARATE_ZVAL(zdata); 540@@ -492,12 +492,12 @@ static PHP_METHOD(amqp_connection_class, __construct) 541 if (Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) < 0) { 542 zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'connect_timeout' must be greater than or equal to zero.", 0 TSRMLS_CC); 543 } else { 544- zend_update_property_double(this_ce, getThis(), ZEND_STRL("connect_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 545+ zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("connect_timeout"), Z_DVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 546 547 } 548 } 549 550- zend_update_property_long(this_ce, getThis(), ZEND_STRL("channel_max"), INI_INT("amqp.channel_max") TSRMLS_CC); 551+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("channel_max"), INI_INT("amqp.channel_max") TSRMLS_CC); 552 553 if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "channel_max", sizeof("channel_max"), zdata)) { 554 SEPARATE_ZVAL(zdata); 555@@ -506,14 +506,14 @@ static PHP_METHOD(amqp_connection_class, __construct) 556 zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'channel_max' is out of range.", 0 TSRMLS_CC); 557 } else { 558 if(Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) == 0) { 559- zend_update_property_long(this_ce, getThis(), ZEND_STRL("channel_max"), PHP_AMQP_DEFAULT_CHANNEL_MAX TSRMLS_CC); 560+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("channel_max"), PHP_AMQP_DEFAULT_CHANNEL_MAX TSRMLS_CC); 561 } else { 562- zend_update_property_long(this_ce, getThis(), ZEND_STRL("channel_max"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 563+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("channel_max"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 564 } 565 } 566 } 567 568- zend_update_property_long(this_ce, getThis(), ZEND_STRL("frame_max"), INI_INT("amqp.frame_max") TSRMLS_CC); 569+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("frame_max"), INI_INT("amqp.frame_max") TSRMLS_CC); 570 571 if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "frame_max", sizeof("frame_max"), zdata)) { 572 SEPARATE_ZVAL(zdata); 573@@ -522,14 +522,14 @@ static PHP_METHOD(amqp_connection_class, __construct) 574 zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'frame_max' is out of range.", 0 TSRMLS_CC); 575 } else { 576 if(Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) == 0) { 577- zend_update_property_long(this_ce, getThis(), ZEND_STRL("frame_max"), PHP_AMQP_DEFAULT_FRAME_MAX TSRMLS_CC); 578+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("frame_max"), PHP_AMQP_DEFAULT_FRAME_MAX TSRMLS_CC); 579 } else { 580- zend_update_property_long(this_ce, getThis(), ZEND_STRL("frame_max"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 581+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("frame_max"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 582 } 583 } 584 } 585 586- zend_update_property_long(this_ce, getThis(), ZEND_STRL("heartbeat"), INI_INT("amqp.heartbeat") TSRMLS_CC); 587+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("heartbeat"), INI_INT("amqp.heartbeat") TSRMLS_CC); 588 589 if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "heartbeat", sizeof("heartbeat"), zdata)) { 590 SEPARATE_ZVAL(zdata); 591@@ -537,16 +537,16 @@ static PHP_METHOD(amqp_connection_class, __construct) 592 if (Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) < 0 || Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) > PHP_AMQP_MAX_HEARTBEAT) { 593 zend_throw_exception(amqp_connection_exception_class_entry, "Parameter 'heartbeat' is out of range.", 0 TSRMLS_CC); 594 } else { 595- zend_update_property_long(this_ce, getThis(), ZEND_STRL("heartbeat"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 596+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("heartbeat"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 597 } 598 } 599 600- zend_update_property_long(this_ce, getThis(), ZEND_STRL("sasl_method"), INI_INT("amqp.sasl_method") TSRMLS_CC); 601+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("sasl_method"), INI_INT("amqp.sasl_method") TSRMLS_CC); 602 603 if (ini_arr && PHP5to7_ZEND_HASH_FIND(HASH_OF(ini_arr), "sasl_method", sizeof("sasl_method"), zdata)) { 604 SEPARATE_ZVAL(zdata); 605 convert_to_long(PHP5to7_MAYBE_DEREF(zdata)); 606- zend_update_property_long(this_ce, getThis(), ZEND_STRL("sasl_method"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 607+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("sasl_method"), Z_LVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 608 } 609 610 611@@ -563,7 +563,7 @@ static PHP_METHOD(amqp_connection_class, __construct) 612 convert_to_string(PHP5to7_MAYBE_DEREF(zdata)); 613 } 614 if (zdata && Z_STRLEN_P(PHP5to7_MAYBE_DEREF(zdata)) > 0) { 615- zend_update_property_string(this_ce, getThis(), ZEND_STRL("connection_name"), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 616+ zend_update_property_string(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("connection_name"), Z_STRVAL_P(PHP5to7_MAYBE_DEREF(zdata)) TSRMLS_CC); 617 } 618 } 619 /* }}} */ 620@@ -789,7 +789,7 @@ static PHP_METHOD(amqp_connection_class, setLogin) 621 return; 622 } 623 624- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("login"), login, login_len TSRMLS_CC); 625+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("login"), login, login_len TSRMLS_CC); 626 627 RETURN_TRUE; 628 } 629@@ -823,7 +823,7 @@ static PHP_METHOD(amqp_connection_class, setPassword) 630 return; 631 } 632 633- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("password"), password, password_len TSRMLS_CC); 634+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("password"), password, password_len TSRMLS_CC); 635 636 RETURN_TRUE; 637 } 638@@ -858,7 +858,7 @@ static PHP_METHOD(amqp_connection_class, setHost) 639 return; 640 } 641 642- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("host"), host, host_len TSRMLS_CC); 643+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("host"), host, host_len TSRMLS_CC); 644 645 RETURN_TRUE; 646 } 647@@ -910,7 +910,7 @@ static PHP_METHOD(amqp_connection_class, setPort) 648 return; 649 } 650 651- zend_update_property_long(this_ce, getThis(), ZEND_STRL("port"), port TSRMLS_CC); 652+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("port"), port TSRMLS_CC); 653 654 RETURN_TRUE; 655 } 656@@ -943,7 +943,7 @@ static PHP_METHOD(amqp_connection_class, setVhost) 657 return; 658 } 659 660- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("vhost"), vhost, vhost_len TSRMLS_CC); 661+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("vhost"), vhost, vhost_len TSRMLS_CC); 662 663 RETURN_TRUE; 664 } 665@@ -986,7 +986,7 @@ static PHP_METHOD(amqp_connection_class, setTimeout) 666 /* Get the connection object out of the store */ 667 connection = PHP_AMQP_GET_CONNECTION(getThis()); 668 669- zend_update_property_double(this_ce, getThis(), ZEND_STRL("read_timeout"), read_timeout TSRMLS_CC); 670+ zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("read_timeout"), read_timeout TSRMLS_CC); 671 672 if (connection->connection_resource && connection->connection_resource->is_connected) { 673 if (php_amqp_set_resource_read_timeout(connection->connection_resource, read_timeout TSRMLS_CC) == 0) { 674@@ -1032,7 +1032,7 @@ static PHP_METHOD(amqp_connection_class, setReadTimeout) 675 /* Get the connection object out of the store */ 676 connection = PHP_AMQP_GET_CONNECTION(getThis()); 677 678- zend_update_property_double(this_ce, getThis(), ZEND_STRL("read_timeout"), read_timeout TSRMLS_CC); 679+ zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("read_timeout"), read_timeout TSRMLS_CC); 680 681 if (connection->connection_resource && connection->connection_resource->is_connected) { 682 if (php_amqp_set_resource_read_timeout(connection->connection_resource, read_timeout TSRMLS_CC) == 0) { 683@@ -1078,7 +1078,7 @@ static PHP_METHOD(amqp_connection_class, setWriteTimeout) 684 /* Get the connection object out of the store */ 685 connection = PHP_AMQP_GET_CONNECTION(getThis()); 686 687- zend_update_property_double(this_ce, getThis(), ZEND_STRL("write_timeout"), write_timeout TSRMLS_CC); 688+ zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("write_timeout"), write_timeout TSRMLS_CC); 689 690 if (connection->connection_resource && connection->connection_resource->is_connected) { 691 if (php_amqp_set_resource_write_timeout(connection->connection_resource, write_timeout TSRMLS_CC) == 0) { 692@@ -1124,7 +1124,7 @@ static PHP_METHOD(amqp_connection_class, setRpcTimeout) 693 /* Get the connection object out of the store */ 694 connection = PHP_AMQP_GET_CONNECTION(getThis()); 695 696- zend_update_property_double(this_ce, getThis(), ZEND_STRL("rpc_timeout"), rpc_timeout TSRMLS_CC); 697+ zend_update_property_double(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("rpc_timeout"), rpc_timeout TSRMLS_CC); 698 699 if (connection->connection_resource && connection->connection_resource->is_connected) { 700 if (php_amqp_set_resource_rpc_timeout(connection->connection_resource, rpc_timeout TSRMLS_CC) == 0) { 701@@ -1255,7 +1255,7 @@ static PHP_METHOD(amqp_connection_class, setCACert) 702 return; 703 } 704 705- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("cacert"), str, str_len TSRMLS_CC); 706+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("cacert"), str, str_len TSRMLS_CC); 707 708 RETURN_TRUE; 709 } 710@@ -1279,7 +1279,7 @@ static PHP_METHOD(amqp_connection_class, setCert) 711 return; 712 } 713 714- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("cert"), str, str_len TSRMLS_CC); 715+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("cert"), str, str_len TSRMLS_CC); 716 717 RETURN_TRUE; 718 } 719@@ -1303,7 +1303,7 @@ static PHP_METHOD(amqp_connection_class, setKey) 720 return; 721 } 722 723- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("key"), str, str_len TSRMLS_CC); 724+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("key"), str, str_len TSRMLS_CC); 725 726 RETURN_TRUE; 727 } 728@@ -1328,7 +1328,7 @@ static PHP_METHOD(amqp_connection_class, setVerify) 729 return; 730 } 731 732- zend_update_property_bool(this_ce, getThis(), ZEND_STRL("verify"), verify TSRMLS_CC); 733+ zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("verify"), verify TSRMLS_CC); 734 735 RETURN_TRUE; 736 } 737@@ -1361,7 +1361,7 @@ static PHP_METHOD(amqp_connection_class, setSaslMethod) 738 return; 739 } 740 741- zend_update_property_long(this_ce, getThis(), ZEND_STRL("sasl_method"), method TSRMLS_CC); 742+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("sasl_method"), method TSRMLS_CC); 743 744 RETURN_TRUE; 745 } 746@@ -1385,9 +1385,9 @@ static PHP_METHOD(amqp_connection_class, setConnectionName) 747 return; 748 } 749 if (str == NULL) { 750- zend_update_property_null(this_ce, getThis(), ZEND_STRL("connection_name") TSRMLS_CC); 751+ zend_update_property_null(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("connection_name") TSRMLS_CC); 752 } else { 753- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("connection_name"), str, str_len TSRMLS_CC); 754+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("connection_name"), str, str_len TSRMLS_CC); 755 } 756 757 758diff --git a/amqp_connection_resource.c b/amqp_connection_resource.c 759index 7e20a5c..b0e065a 100644 760--- a/amqp_connection_resource.c 761+++ b/amqp_connection_resource.c 762@@ -112,15 +112,15 @@ static void php_amqp_close_connection_from_server(amqp_rpc_reply_t reply, char * 763 764 if (!reply.reply.id) { 765 PHP_AMQP_G(error_code) = -1; 766- spprintf(message, 0, "Server connection error: %d, message: %s", 767- PHP_AMQP_G(error_code), 768+ spprintf(message, 0, "Server connection error: %ld, message: %s", 769+ (long)PHP_AMQP_G(error_code), 770 "unexpected response" 771 ); 772 } else { 773 PHP_AMQP_G(error_code) = m->reply_code; 774 spprintf(message, 0, "Server connection error: %d, message: %.*s", 775 m->reply_code, 776- (PHP5to7_param_str_len_type_t) m->reply_text.len, 777+ (int) m->reply_text.len, 778 (char *) m->reply_text.bytes 779 ); 780 } 781@@ -156,15 +156,15 @@ static void php_amqp_close_channel_from_server(amqp_rpc_reply_t reply, char **me 782 783 if (!reply.reply.id) { 784 PHP_AMQP_G(error_code) = -1; 785- spprintf(message, 0, "Server channel error: %d, message: %s", 786- PHP_AMQP_G(error_code), 787+ spprintf(message, 0, "Server channel error: %ld, message: %s", 788+ (long)PHP_AMQP_G(error_code), 789 "unexpected response" 790 ); 791 } else { 792 PHP_AMQP_G(error_code) = m->reply_code; 793 spprintf(message, 0, "Server channel error: %d, message: %.*s", 794 m->reply_code, 795- (PHP5to7_param_str_len_type_t) m->reply_text.len, 796+ (int) m->reply_text.len, 797 (char *)m->reply_text.bytes 798 ); 799 } 800diff --git a/amqp_decimal.c b/amqp_decimal.c 801index 83c9f20..8fd92c1 100644 802--- a/amqp_decimal.c 803+++ b/amqp_decimal.c 804@@ -53,7 +53,7 @@ static PHP_METHOD(amqp_decimal_class, __construct) 805 } 806 807 if (exponent > AMQP_DECIMAL_EXPONENT_MAX) { 808- zend_throw_exception_ex(amqp_value_exception_class_entry, 0 TSRMLS_CC, "Decimal exponent value must be less than %u.", AMQP_DECIMAL_EXPONENT_MAX); 809+ zend_throw_exception_ex(amqp_value_exception_class_entry, 0 TSRMLS_CC, "Decimal exponent value must be less than %u.", (unsigned)AMQP_DECIMAL_EXPONENT_MAX); 810 return; 811 } 812 if (significand < AMQP_DECIMAL_SIGNIFICAND_MIN) { 813@@ -62,12 +62,12 @@ static PHP_METHOD(amqp_decimal_class, __construct) 814 } 815 816 if (significand > AMQP_DECIMAL_SIGNIFICAND_MAX) { 817- zend_throw_exception_ex(amqp_value_exception_class_entry, 0 TSRMLS_CC, "Decimal significand value must be less than %u.", AMQP_DECIMAL_SIGNIFICAND_MAX); 818+ zend_throw_exception_ex(amqp_value_exception_class_entry, 0 TSRMLS_CC, "Decimal significand value must be less than %u.", (unsigned)AMQP_DECIMAL_SIGNIFICAND_MAX); 819 return; 820 } 821 822- zend_update_property_long(this_ce, getThis(), ZEND_STRL("exponent"), exponent TSRMLS_CC); 823- zend_update_property_long(this_ce, getThis(), ZEND_STRL("significand"), significand TSRMLS_CC); 824+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("exponent"), exponent TSRMLS_CC); 825+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("significand"), significand TSRMLS_CC); 826 } 827 /* }}} */ 828 829diff --git a/amqp_envelope.c b/amqp_envelope.c 830index 8127bed..b7a7a45 100644 831--- a/amqp_envelope.c 832+++ b/amqp_envelope.c 833@@ -67,13 +67,13 @@ void convert_amqp_envelope_to_zval(amqp_envelope_t *amqp_envelope, zval *envelop 834 amqp_basic_properties_t *p = &amqp_envelope->message.properties; 835 amqp_message_t *message = &amqp_envelope->message; 836 837- zend_update_property_stringl(this_ce, envelope, ZEND_STRL("body"), (const char *) message->body.bytes, (PHP5to7_param_str_len_type_t) message->body.len TSRMLS_CC); 838+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(envelope), ZEND_STRL("body"), (const char *) message->body.bytes, (PHP5to7_param_str_len_type_t) message->body.len TSRMLS_CC); 839 840- zend_update_property_stringl(this_ce, envelope, ZEND_STRL("consumer_tag"), (const char *) amqp_envelope->consumer_tag.bytes, (PHP5to7_param_str_len_type_t) amqp_envelope->consumer_tag.len TSRMLS_CC); 841- zend_update_property_long(this_ce, envelope, ZEND_STRL("delivery_tag"), (PHP5to7_param_long_type_t) amqp_envelope->delivery_tag TSRMLS_CC); 842- zend_update_property_bool(this_ce, envelope, ZEND_STRL("is_redelivery"), (PHP5to7_param_long_type_t) amqp_envelope->redelivered TSRMLS_CC); 843- zend_update_property_stringl(this_ce, envelope, ZEND_STRL("exchange_name"), (const char *) amqp_envelope->exchange.bytes, (PHP5to7_param_str_len_type_t) amqp_envelope->exchange.len TSRMLS_CC); 844- zend_update_property_stringl(this_ce, envelope, ZEND_STRL("routing_key"), (const char *) amqp_envelope->routing_key.bytes, (PHP5to7_param_str_len_type_t) amqp_envelope->routing_key.len TSRMLS_CC); 845+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(envelope), ZEND_STRL("consumer_tag"), (const char *) amqp_envelope->consumer_tag.bytes, (PHP5to7_param_str_len_type_t) amqp_envelope->consumer_tag.len TSRMLS_CC); 846+ zend_update_property_long(this_ce, PHP5to8_OBJ_PROP(envelope), ZEND_STRL("delivery_tag"), (PHP5to7_param_long_type_t) amqp_envelope->delivery_tag TSRMLS_CC); 847+ zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(envelope), ZEND_STRL("is_redelivery"), (PHP5to7_param_long_type_t) amqp_envelope->redelivered TSRMLS_CC); 848+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(envelope), ZEND_STRL("exchange_name"), (const char *) amqp_envelope->exchange.bytes, (PHP5to7_param_str_len_type_t) amqp_envelope->exchange.len TSRMLS_CC); 849+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(envelope), ZEND_STRL("routing_key"), (const char *) amqp_envelope->routing_key.bytes, (PHP5to7_param_str_len_type_t) amqp_envelope->routing_key.len TSRMLS_CC); 850 851 php_amqp_basic_properties_extract(p, envelope TSRMLS_CC); 852 } 853diff --git a/amqp_exchange.c b/amqp_exchange.c 854index 4f80d3b..4bfe397 100644 855--- a/amqp_exchange.c 856+++ b/amqp_exchange.c 857@@ -65,20 +65,20 @@ static PHP_METHOD(amqp_exchange_class, __construct) 858 zval *channelObj; 859 amqp_channel_resource *channel_resource; 860 861- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o", &channelObj) == FAILURE) { 862+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &channelObj, amqp_channel_class_entry) == FAILURE) { 863 return; 864 } 865 866 PHP5to7_MAYBE_INIT(arguments); 867 PHP5to7_ARRAY_INIT(arguments); 868- zend_update_property(this_ce, getThis(), ZEND_STRL("arguments"), PHP5to7_MAYBE_PTR(arguments) TSRMLS_CC); 869+ zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("arguments"), PHP5to7_MAYBE_PTR(arguments) TSRMLS_CC); 870 PHP5to7_MAYBE_DESTROY(arguments); 871 872 channel_resource = PHP_AMQP_GET_CHANNEL_RESOURCE(channelObj); 873 PHP_AMQP_VERIFY_CHANNEL_RESOURCE(channel_resource, "Could not create exchange."); 874 875- zend_update_property(this_ce, getThis(), ZEND_STRL("channel"), channelObj TSRMLS_CC); 876- zend_update_property(this_ce, getThis(), ZEND_STRL("connection"), PHP_AMQP_READ_OBJ_PROP(amqp_channel_class_entry, channelObj, "connection") TSRMLS_CC); 877+ zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("channel"), channelObj TSRMLS_CC); 878+ zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("connection"), PHP_AMQP_READ_OBJ_PROP(amqp_channel_class_entry, channelObj, "connection") TSRMLS_CC); 879 } 880 /* }}} */ 881 882@@ -119,7 +119,7 @@ static PHP_METHOD(amqp_exchange_class, setName) 883 } 884 885 /* Set the exchange name */ 886- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("name"), name, name_len TSRMLS_CC); 887+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("name"), name, name_len TSRMLS_CC); 888 } 889 /* }}} */ 890 891@@ -168,10 +168,10 @@ static PHP_METHOD(amqp_exchange_class, setFlags) 892 /* Set the flags based on the bitmask we were given */ 893 flagBitmask = flagBitmask ? flagBitmask & PHP_AMQP_EXCHANGE_FLAGS : flagBitmask; 894 895- zend_update_property_bool(this_ce, getThis(), ZEND_STRL("passive"), IS_PASSIVE(flagBitmask) TSRMLS_CC); 896- zend_update_property_bool(this_ce, getThis(), ZEND_STRL("durable"), IS_DURABLE(flagBitmask) TSRMLS_CC); 897- zend_update_property_bool(this_ce, getThis(), ZEND_STRL("auto_delete"), IS_AUTODELETE(flagBitmask) TSRMLS_CC); 898- zend_update_property_bool(this_ce, getThis(), ZEND_STRL("internal"), IS_INTERNAL(flagBitmask) TSRMLS_CC); 899+ zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("passive"), IS_PASSIVE(flagBitmask) TSRMLS_CC); 900+ zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("durable"), IS_DURABLE(flagBitmask) TSRMLS_CC); 901+ zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("auto_delete"), IS_AUTODELETE(flagBitmask) TSRMLS_CC); 902+ zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("internal"), IS_INTERNAL(flagBitmask) TSRMLS_CC); 903 } 904 /* }}} */ 905 906@@ -204,7 +204,7 @@ static PHP_METHOD(amqp_exchange_class, setType) 907 return; 908 } 909 910- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("type"), type, type_len TSRMLS_CC); 911+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("type"), type, type_len TSRMLS_CC); 912 } 913 /* }}} */ 914 915@@ -273,7 +273,7 @@ static PHP_METHOD(amqp_exchange_class, setArguments) 916 return; 917 } 918 919- zend_update_property(this_ce, getThis(), ZEND_STRL("arguments"), zvalArguments TSRMLS_CC); 920+ zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("arguments"), zvalArguments TSRMLS_CC); 921 922 RETURN_TRUE; 923 } 924diff --git a/amqp_queue.c b/amqp_queue.c 925index c13629c..eeba144 100644 926--- a/amqp_queue.c 927+++ b/amqp_queue.c 928@@ -68,20 +68,20 @@ static PHP_METHOD(amqp_queue_class, __construct) 929 zval *channelObj; 930 amqp_channel_resource *channel_resource; 931 932- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o", &channelObj) == FAILURE) { 933+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &channelObj, amqp_channel_class_entry) == FAILURE) { 934 return; 935 } 936 937 PHP5to7_MAYBE_INIT(arguments); 938 PHP5to7_ARRAY_INIT(arguments); 939- zend_update_property(this_ce, getThis(), ZEND_STRL("arguments"), PHP5to7_MAYBE_PTR(arguments) TSRMLS_CC); 940+ zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("arguments"), PHP5to7_MAYBE_PTR(arguments) TSRMLS_CC); 941 PHP5to7_MAYBE_DESTROY(arguments); 942 943 channel_resource = PHP_AMQP_GET_CHANNEL_RESOURCE(channelObj); 944 PHP_AMQP_VERIFY_CHANNEL_RESOURCE(channel_resource, "Could not create queue."); 945 946- zend_update_property(this_ce, getThis(), ZEND_STRL("channel"), channelObj TSRMLS_CC); 947- zend_update_property(this_ce, getThis(), ZEND_STRL("connection"), PHP_AMQP_READ_OBJ_PROP(amqp_channel_class_entry, channelObj, "connection") TSRMLS_CC); 948+ zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("channel"), channelObj TSRMLS_CC); 949+ zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("connection"), PHP_AMQP_READ_OBJ_PROP(amqp_channel_class_entry, channelObj, "connection") TSRMLS_CC); 950 951 } 952 /* }}} */ 953@@ -122,7 +122,7 @@ static PHP_METHOD(amqp_queue_class, setName) 954 } 955 956 /* Set the queue name */ 957- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("name"), name, name_len TSRMLS_CC); 958+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("name"), name, name_len TSRMLS_CC); 959 960 /* BC */ 961 RETURN_TRUE; 962@@ -175,10 +175,10 @@ static PHP_METHOD(amqp_queue_class, setFlags) 963 /* Set the flags based on the bitmask we were given */ 964 flagBitmask = flagBitmask ? flagBitmask & PHP_AMQP_QUEUE_FLAGS : flagBitmask; 965 966- zend_update_property_bool(this_ce, getThis(), ZEND_STRL("passive"), IS_PASSIVE(flagBitmask) TSRMLS_CC); 967- zend_update_property_bool(this_ce, getThis(), ZEND_STRL("durable"), IS_DURABLE(flagBitmask) TSRMLS_CC); 968- zend_update_property_bool(this_ce, getThis(), ZEND_STRL("exclusive"), IS_EXCLUSIVE(flagBitmask) TSRMLS_CC); 969- zend_update_property_bool(this_ce, getThis(), ZEND_STRL("auto_delete"), IS_AUTODELETE(flagBitmask) TSRMLS_CC); 970+ zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("passive"), IS_PASSIVE(flagBitmask) TSRMLS_CC); 971+ zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("durable"), IS_DURABLE(flagBitmask) TSRMLS_CC); 972+ zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("exclusive"), IS_EXCLUSIVE(flagBitmask) TSRMLS_CC); 973+ zend_update_property_bool(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("auto_delete"), IS_AUTODELETE(flagBitmask) TSRMLS_CC); 974 975 /* BC */ 976 RETURN_TRUE; 977@@ -250,7 +250,7 @@ static PHP_METHOD(amqp_queue_class, setArguments) 978 return; 979 } 980 981- zend_update_property(this_ce, getThis(), ZEND_STRL("arguments"), zvalArguments TSRMLS_CC); 982+ zend_update_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("arguments"), zvalArguments TSRMLS_CC); 983 984 RETURN_TRUE; 985 } 986@@ -342,7 +342,7 @@ static PHP_METHOD(amqp_queue_class, declareQueue) 987 988 /* Set the queue name, in case it is an autogenerated queue name */ 989 name = php_amqp_type_amqp_bytes_to_char(r->queue); 990- zend_update_property_string(this_ce, getThis(), ZEND_STRL("name"), name TSRMLS_CC); 991+ zend_update_property_string(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("name"), name TSRMLS_CC); 992 efree(name); 993 994 php_amqp_maybe_release_buffers_on_channel(channel_resource->connection_resource, channel_resource); 995@@ -525,7 +525,7 @@ static PHP_METHOD(amqp_queue_class, consume) 996 } 997 998 zval *channel_zv = PHP_AMQP_READ_THIS_PROP("channel"); 999- zval *consumers = zend_read_property(amqp_channel_class_entry, channel_zv, ZEND_STRL("consumers"), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC); 1000+ zval *consumers = zend_read_property(amqp_channel_class_entry, PHP5to8_OBJ_PROP(channel_zv), ZEND_STRL("consumers"), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC); 1001 1002 if (IS_ARRAY != Z_TYPE_P(consumers)) { 1003 zend_throw_exception(amqp_queue_exception_class_entry, "Invalid channel consumers, forgot to call channel constructor?", 0 TSRMLS_CC); 1004@@ -594,7 +594,7 @@ static PHP_METHOD(amqp_queue_class, consume) 1005 efree(key); 1006 1007 /* Set the consumer tag name, in case it is an autogenerated consumer tag name */ 1008- zend_update_property_stringl(this_ce, getThis(), ZEND_STRL("consumer_tag"), (const char *) r->consumer_tag.bytes, (PHP5to7_param_str_len_type_t) r->consumer_tag.len TSRMLS_CC); 1009+ zend_update_property_stringl(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("consumer_tag"), (const char *) r->consumer_tag.bytes, (PHP5to7_param_str_len_type_t) r->consumer_tag.len TSRMLS_CC); 1010 } 1011 1012 if (!ZEND_FCI_INITIALIZED(fci)) { 1013@@ -674,7 +674,7 @@ static PHP_METHOD(amqp_queue_class, consume) 1014 current_channel_zv = current_channel_resource->parent->this_ptr; 1015 #endif 1016 1017- consumers = zend_read_property(amqp_channel_class_entry, PHP5to7_MAYBE_PTR(current_channel_zv), ZEND_STRL("consumers"), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC); 1018+ consumers = zend_read_property(amqp_channel_class_entry, PHP5to8_OBJ_PROP(PHP5to7_MAYBE_PTR(current_channel_zv)), ZEND_STRL("consumers"), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC); 1019 1020 if (IS_ARRAY != Z_TYPE_P(consumers)) { 1021 zend_throw_exception(amqp_queue_exception_class_entry, "Invalid channel consumers, forgot to call channel constructor?", 0 TSRMLS_CC); 1022@@ -689,8 +689,8 @@ static PHP_METHOD(amqp_queue_class, consume) 1023 PHP5to7_zval_t exception PHP5to7_MAYBE_SET_TO_NULL; 1024 PHP5to7_MAYBE_INIT(exception); 1025 object_init_ex(PHP5to7_MAYBE_PTR(exception), amqp_envelope_exception_class_entry); 1026- zend_update_property_string(zend_exception_get_default(TSRMLS_C), PHP5to7_MAYBE_PTR(exception), ZEND_STRL("message"), "Orphaned envelope" TSRMLS_CC); 1027- zend_update_property(amqp_envelope_exception_class_entry, PHP5to7_MAYBE_PTR(exception), ZEND_STRL("envelope"), PHP5to7_MAYBE_PTR(message) TSRMLS_CC); 1028+ zend_update_property_string(zend_exception_get_default(TSRMLS_C), PHP5to8_OBJ_PROP(PHP5to7_MAYBE_PTR(exception)), ZEND_STRL("message"), "Orphaned envelope" TSRMLS_CC); 1029+ zend_update_property(amqp_envelope_exception_class_entry, PHP5to8_OBJ_PROP(PHP5to7_MAYBE_PTR(exception)), ZEND_STRL("envelope"), PHP5to7_MAYBE_PTR(message) TSRMLS_CC); 1030 1031 zend_throw_exception_object(PHP5to7_MAYBE_PTR(exception) TSRMLS_CC); 1032 1033@@ -946,7 +946,7 @@ static PHP_METHOD(amqp_queue_class, cancel) 1034 } 1035 1036 zval *channel_zv = PHP_AMQP_READ_THIS_PROP("channel"); 1037- zval *consumers = zend_read_property(amqp_channel_class_entry, channel_zv, ZEND_STRL("consumers"), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC); 1038+ zval *consumers = zend_read_property(amqp_channel_class_entry, PHP5to8_OBJ_PROP(channel_zv), ZEND_STRL("consumers"), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC); 1039 zend_bool has_consumer_tag = (zend_bool) (IS_STRING == Z_TYPE_P(PHP_AMQP_READ_THIS_PROP("consumer_tag"))); 1040 1041 if (IS_ARRAY != Z_TYPE_P(consumers)) { 1042@@ -977,8 +977,8 @@ static PHP_METHOD(amqp_queue_class, cancel) 1043 return; 1044 } 1045 1046- if (!consumer_tag_len || has_consumer_tag && strcmp(consumer_tag, PHP_AMQP_READ_THIS_PROP_STR("consumer_tag")) != 0) { 1047- zend_update_property_null(this_ce, getThis(), ZEND_STRL("consumer_tag") TSRMLS_CC); 1048+ if (!consumer_tag_len || (has_consumer_tag && strcmp(consumer_tag, PHP_AMQP_READ_THIS_PROP_STR("consumer_tag")) != 0)) { 1049+ zend_update_property_null(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("consumer_tag") TSRMLS_CC); 1050 } 1051 1052 char *key; 1053diff --git a/amqp_timestamp.c b/amqp_timestamp.c 1054index d9eec39..ed07ab6 100644 1055--- a/amqp_timestamp.c 1056+++ b/amqp_timestamp.c 1057@@ -61,7 +61,7 @@ static PHP_METHOD(amqp_timestamp_class, __construct) 1058 #if PHP_MAJOR_VERSION >= 7 1059 zend_string *str; 1060 str = _php_math_number_format_ex(timestamp, 0, "", 0, "", 0); 1061- zend_update_property_str(this_ce, getThis(), ZEND_STRL("timestamp"), str); 1062+ zend_update_property_str(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL("timestamp"), str); 1063 zend_string_delref(str); 1064 #else 1065 char *str; 1066@@ -104,7 +104,11 @@ ZEND_END_ARG_INFO() 1067 ZEND_BEGIN_ARG_INFO_EX(arginfo_amqp_timestamp_class_getTimestamp, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, 0) 1068 ZEND_END_ARG_INFO() 1069 1070+#if PHP_MAJOR_VERSION < 8 1071 ZEND_BEGIN_ARG_INFO_EX(arginfo_amqp_timestamp_class_toString, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, 0) 1072+#else 1073+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_amqp_timestamp_class_toString, ZEND_SEND_BY_VAL, ZEND_RETURN_VALUE, IS_STRING, 0) 1074+#endif 1075 ZEND_END_ARG_INFO() 1076 1077 zend_function_entry amqp_timestamp_class_functions[] = { 1078diff --git a/amqp_type.c b/amqp_type.c 1079index fb87727..5f1ab91 100644 1080--- a/amqp_type.c 1081+++ b/amqp_type.c 1082@@ -250,7 +250,7 @@ zend_bool php_amqp_type_internal_convert_php_to_amqp_field_value(zval *value, am 1083 if (instanceof_function(Z_OBJCE_P(value), amqp_timestamp_class_entry TSRMLS_CC)) { 1084 PHP5to7_zval_t result_zv PHP5to7_MAYBE_SET_TO_NULL; 1085 1086- zend_call_method_with_0_params(PHP5to7_MAYBE_PARAM_PTR(value), amqp_timestamp_class_entry, NULL, "gettimestamp", &result_zv); 1087+ zend_call_method_with_0_params(PHP5to8_OBJ_PROP(PHP5to7_MAYBE_PARAM_PTR(value)), amqp_timestamp_class_entry, NULL, "gettimestamp", &result_zv); 1088 1089 field->kind = AMQP_FIELD_KIND_TIMESTAMP; 1090 field->value.u64 = strtoimax(Z_STRVAL(PHP5to7_MAYBE_DEREF(result_zv)), NULL, 10); 1091@@ -262,11 +262,11 @@ zend_bool php_amqp_type_internal_convert_php_to_amqp_field_value(zval *value, am 1092 field->kind = AMQP_FIELD_KIND_DECIMAL; 1093 PHP5to7_zval_t result_zv PHP5to7_MAYBE_SET_TO_NULL; 1094 1095- zend_call_method_with_0_params(PHP5to7_MAYBE_PARAM_PTR(value), amqp_decimal_class_entry, NULL, "getexponent", &result_zv); 1096+ zend_call_method_with_0_params(PHP5to8_OBJ_PROP(PHP5to7_MAYBE_PARAM_PTR(value)), amqp_decimal_class_entry, NULL, "getexponent", &result_zv); 1097 field->value.decimal.decimals = (uint8_t)Z_LVAL(PHP5to7_MAYBE_DEREF(result_zv)); 1098 PHP5to7_MAYBE_DESTROY(result_zv); 1099 1100- zend_call_method_with_0_params(PHP5to7_MAYBE_PARAM_PTR(value), amqp_decimal_class_entry, NULL, "getsignificand", &result_zv); 1101+ zend_call_method_with_0_params(PHP5to8_OBJ_PROP(PHP5to7_MAYBE_PARAM_PTR(value)), amqp_decimal_class_entry, NULL, "getsignificand", &result_zv); 1102 field->value.decimal.value = (uint32_t)Z_LVAL(PHP5to7_MAYBE_DEREF(result_zv)); 1103 1104 PHP5to7_MAYBE_DESTROY(result_zv); 1105diff --git a/php5_support.h b/php5_support.h 1106index 5c57620..25c2d96 100644 1107--- a/php5_support.h 1108+++ b/php5_support.h 1109@@ -109,6 +109,8 @@ typedef zend_rsrc_list_entry PHP5to7_zend_resource_le_t; 1110 #define ZEND_ULONG_FMT "%" PRIu64 1111 #define PHP5to7_ZEND_ACC_FINAL_CLASS ZEND_ACC_FINAL_CLASS 1112 1113+#define PHP5to8_OBJ_PROP(zv) (zv) 1114+ 1115 #endif //PHP_AMQP_PHP5_SUPPORT_H 1116 1117 /* 1118diff --git a/php7_support.h b/php7_support.h 1119index c9e8f5b..0dbd6b2 100644 1120--- a/php7_support.h 1121+++ b/php7_support.h 1122@@ -101,15 +101,24 @@ typedef zval PHP5to7_zend_resource_le_t; 1123 1124 #define PHP5to7_ZEND_ACC_FINAL_CLASS ZEND_ACC_FINAL 1125 1126+ 1127 /* Small change to let it build after a major internal change for php8.0 1128 * More info: 1129 * https://github.com/php/php-src/blob/php-8.0.0alpha3/UPGRADING.INTERNALS#L47 1130 */ 1131 #if PHP_MAJOR_VERSION >= 8 1132+ 1133 # define TSRMLS_DC 1134 # define TSRMLS_D 1135 # define TSRMLS_CC 1136 # define TSRMLS_C 1137+ 1138+#define PHP5to8_OBJ_PROP(zv) Z_OBJ_P(zv) 1139+ 1140+#else 1141+ 1142+#define PHP5to8_OBJ_PROP(zv) (zv) 1143+ 1144 # endif 1145 1146 #endif //PHP_AMQP_PHP7_SUPPORT_H 1147diff --git a/php_amqp.h b/php_amqp.h 1148index 752edd7..686741d 100644 1149--- a/php_amqp.h 1150+++ b/php_amqp.h 1151@@ -221,14 +221,14 @@ struct _amqp_connection_object { 1152 #define PHP_AMQP_NOPARAMS() if (zend_parse_parameters_none() == FAILURE) { return; } 1153 1154 #define PHP_AMQP_RETURN_THIS_PROP(prop_name) \ 1155- zval * _zv = zend_read_property(this_ce, getThis(), ZEND_STRL(prop_name), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC); \ 1156+ zval * _zv = zend_read_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL(prop_name), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC); \ 1157 RETURN_ZVAL(_zv, 1, 0); 1158 1159-#define PHP_AMQP_READ_OBJ_PROP(cls, obj, name) zend_read_property((cls), (obj), ZEND_STRL(name), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC) 1160+#define PHP_AMQP_READ_OBJ_PROP(cls, obj, name) zend_read_property((cls), PHP5to8_OBJ_PROP(obj), ZEND_STRL(name), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC) 1161 #define PHP_AMQP_READ_OBJ_PROP_DOUBLE(cls, obj, name) Z_DVAL_P(PHP_AMQP_READ_OBJ_PROP((cls), (obj), (name))) 1162 1163-#define PHP_AMQP_READ_THIS_PROP_CE(name, ce) zend_read_property((ce), getThis(), ZEND_STRL(name), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC) 1164-#define PHP_AMQP_READ_THIS_PROP(name) zend_read_property(this_ce, getThis(), ZEND_STRL(name), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC) 1165+#define PHP_AMQP_READ_THIS_PROP_CE(name, ce) zend_read_property((ce), PHP5to8_OBJ_PROP(getThis()), ZEND_STRL(name), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC) 1166+#define PHP_AMQP_READ_THIS_PROP(name) zend_read_property(this_ce, PHP5to8_OBJ_PROP(getThis()), ZEND_STRL(name), 0 PHP5to7_READ_PROP_RV_PARAM_CC TSRMLS_CC) 1167 #define PHP_AMQP_READ_THIS_PROP_BOOL(name) Z_BVAL_P(PHP_AMQP_READ_THIS_PROP(name)) 1168 #define PHP_AMQP_READ_THIS_PROP_STR(name) Z_STRVAL_P(PHP_AMQP_READ_THIS_PROP(name)) 1169 #define PHP_AMQP_READ_THIS_PROP_STRLEN(name) (Z_TYPE_P(PHP_AMQP_READ_THIS_PROP(name)) == IS_STRING ? Z_STRLEN_P(PHP_AMQP_READ_THIS_PROP(name)) : 0) 1170diff --git a/tests/amqptimestamp.phpt b/tests/amqptimestamp.phpt 1171index 9835883..6424f8b 100644 1172--- a/tests/amqptimestamp.phpt 1173+++ b/tests/amqptimestamp.phpt 1174@@ -2,7 +2,7 @@ 1175 AMQPTimestamp 1176 --SKIPIF-- 1177 <?php 1178-if (!extension_loaded("amqp") || version_compare(PHP_VERSION, '5.3', '<')) { 1179+if (!extension_loaded("amqp") || version_compare(PHP_VERSION, '5.3', '<') || version_compare(PHP_VERSION, '8.0', '>')) { 1180 print "skip"; 1181 } 1182 --FILE-- 1183@@ -52,4 +52,4 @@ bool(true) 1184 string(20) "18446744073709551616" 1185 string(1) "0" 1186 1187-==END== 1188\ No newline at end of file 1189+==END== 1190diff --git a/tests/amqptimestamp_php8.phpt b/tests/amqptimestamp_php8.phpt 1191new file mode 100644 1192index 0000000..dabecc5 1193--- /dev/null 1194+++ b/tests/amqptimestamp_php8.phpt 1195@@ -0,0 +1,60 @@ 1196+--TEST-- 1197+AMQPTimestamp 1198+--SKIPIF-- 1199+<?php 1200+if (!extension_loaded("amqp") || version_compare(PHP_VERSION, '8.0', '<')) { 1201+ print "skip"; 1202+} 1203+--FILE-- 1204+<?php 1205+ 1206+$timestamp = new AMQPTimestamp(100000); 1207+var_dump($timestamp->getTimestamp(), (string) $timestamp); 1208+ 1209+$timestamp = new AMQPTimestamp(100000.1); 1210+var_dump($timestamp->getTimestamp(), (string) $timestamp); 1211+ 1212+try { 1213+ new AMQPTimestamp(); 1214+} catch(ArgumentCountError $e) { 1215+ echo $e->getMessage() . "\n"; 1216+} 1217+try { 1218+ new AMQPTimestamp("string"); 1219+} catch(TypeError $e) { 1220+ echo $e->getMessage() . "\n"; 1221+} 1222+ 1223+try { 1224+ new AMQPTimestamp(AMQPTimestamp::MIN - 1); 1225+} catch (AMQPValueException $e) { 1226+ echo $e->getMessage() . "\n"; 1227+} 1228+ 1229+try { 1230+ new AMQPTimestamp(INF); 1231+} catch (AMQPValueException $e) { 1232+ echo $e->getMessage() . "\n"; 1233+} 1234+ 1235+var_dump((new ReflectionClass("AMQPTimestamp"))->isFinal()); 1236+ 1237+var_dump(AMQPTimestamp::MAX); 1238+var_dump(AMQPTimestamp::MIN); 1239+?> 1240+ 1241+==END== 1242+--EXPECTF-- 1243+string(6) "100000" 1244+string(6) "100000" 1245+string(6) "100000" 1246+string(6) "100000" 1247+AMQPTimestamp::__construct() expects exactly 1 parameter, 0 given 1248+AMQPTimestamp::__construct(): Argument #1 ($timestamp) must be of type float, string given 1249+The timestamp parameter must be greater than 0. 1250+The timestamp parameter must be less than 18446744073709551616. 1251+bool(true) 1252+string(20) "18446744073709551616" 1253+string(1) "0" 1254+ 1255+==END== 1256diff --git a/tests/bug_61533.phpt b/tests/bug_61533.phpt 1257index ecb5213..f53c315 100644 1258--- a/tests/bug_61533.phpt 1259+++ b/tests/bug_61533.phpt 1260@@ -21,4 +21,4 @@ try { 1261 1262 ?> 1263 --EXPECTF-- 1264-%s: Argument 1 passed to AMQPQueue::__construct() must be an instance of AMQPChannel, instance of AMQPConnection given%s 1265+%s AMQPChannel%s AMQPConnection%s 1266