@@ -269,6 +269,11 @@ static void php_phongo_decimal128_free_object(phongo_free_object_arg *object TSR
269269
270270 zend_object_std_dtor (& intern -> std TSRMLS_CC );
271271
272+ if (intern -> properties ) {
273+ zend_hash_destroy (intern -> properties );
274+ FREE_HASHTABLE (intern -> properties );
275+ }
276+
272277#if PHP_VERSION_ID < 70000
273278 efree (intern );
274279#endif
@@ -303,17 +308,18 @@ static HashTable *php_phongo_decimal128_get_gc(zval *object, phongo_get_gc_table
303308 * table = NULL ;
304309 * n = 0 ;
305310
306- return zend_std_get_properties (object TSRMLS_CC ) ;
311+ return Z_DECIMAL128_OBJ_P (object ) -> properties ;
307312} /* }}} */
308313
309- static HashTable * php_phongo_decimal128_get_properties (zval * object TSRMLS_DC ) /* {{{ */
314+ static HashTable * php_phongo_decimal128_get_properties_hash (zval * object , bool is_debug TSRMLS_DC ) /* {{{ */
310315{
311316 php_phongo_decimal128_t * intern ;
312317 HashTable * props ;
313318 char outbuf [BSON_DECIMAL128_STRING ] = "" ;
314319
315320 intern = Z_DECIMAL128_OBJ_P (object );
316- props = zend_std_get_properties (object TSRMLS_CC );
321+
322+ PHONGO_GET_PROPERTY_HASH_INIT_PROPS (is_debug , intern , props , 1 );
317323
318324 if (!intern -> initialized ) {
319325 return props ;
@@ -340,6 +346,17 @@ static HashTable *php_phongo_decimal128_get_properties(zval *object TSRMLS_DC) /
340346
341347 return props ;
342348} /* }}} */
349+
350+ static HashTable * php_phongo_decimal128_get_debug_info (zval * object , int * is_temp TSRMLS_DC ) /* {{{ */
351+ {
352+ * is_temp = 1 ;
353+ return php_phongo_decimal128_get_properties_hash (object , true TSRMLS_CC );
354+ } /* }}} */
355+
356+ static HashTable * php_phongo_decimal128_get_properties (zval * object TSRMLS_DC ) /* {{{ */
357+ {
358+ return php_phongo_decimal128_get_properties_hash (object , false TSRMLS_CC );
359+ } /* }}} */
343360/* }}} */
344361
345362void php_phongo_decimal128_init_ce (INIT_FUNC_ARGS ) /* {{{ */
@@ -356,6 +373,7 @@ void php_phongo_decimal128_init_ce(INIT_FUNC_ARGS) /* {{{ */
356373 zend_class_implements (php_phongo_decimal128_ce TSRMLS_CC , 1 , zend_ce_serializable );
357374
358375 memcpy (& php_phongo_handler_decimal128 , phongo_get_std_object_handlers (), sizeof (zend_object_handlers ));
376+ php_phongo_handler_decimal128 .get_debug_info = php_phongo_decimal128_get_debug_info ;
359377 php_phongo_handler_decimal128 .get_gc = php_phongo_decimal128_get_gc ;
360378 php_phongo_handler_decimal128 .get_properties = php_phongo_decimal128_get_properties ;
361379#if PHP_VERSION_ID >= 70000
0 commit comments