@@ -245,20 +245,6 @@ static void imap_object_destroy(zend_object *zobj) {
245245 RETURN_FALSE; \
246246 } \
247247
248- /* {{{ php_imap_hash_add_object */
249- static zval * php_imap_hash_add_object (zval * arg , char * key , zval * tmp )
250- {
251- HashTable * symtable ;
252-
253- if (Z_TYPE_P (arg ) == IS_OBJECT ) {
254- symtable = Z_OBJPROP_P (arg );
255- } else {
256- symtable = Z_ARRVAL_P (arg );
257- }
258- return zend_hash_str_update (symtable , key , strlen (key ), tmp );
259- }
260- /* }}} */
261-
262248/* {{{ mail_newfolderobjectlist
263249 *
264250 * Mail instantiate FOBJECTLIST
@@ -2959,7 +2945,13 @@ static void php_imap_populate_body_struct_object(zval *z_object, const BODY *bod
29592945 );
29602946 zend_hash_next_index_insert_new (Z_ARR (z_disposition_parameter_list ), & z_disposition_parameter );
29612947 } while ((disposition_parameter = disposition_parameter -> next ));
2962- php_imap_hash_add_object (z_object , "dparameters" , & z_disposition_parameter_list );
2948+
2949+ zend_update_property (
2950+ Z_OBJCE_P (z_object ), Z_OBJ_P (z_object ),
2951+ "dparameters" , strlen ("dparameters" ),
2952+ & z_disposition_parameter_list
2953+ );
2954+ zval_ptr_dtor (& z_disposition_parameter_list );
29632955 } else {
29642956 zend_update_property_long (
29652957 Z_OBJCE_P (z_object ), Z_OBJ_P (z_object ),
@@ -3004,7 +2996,13 @@ static void php_imap_populate_body_struct_object(zval *z_object, const BODY *bod
30042996 0
30052997 );
30062998 }
3007- php_imap_hash_add_object (z_object , "parameters" , & z_body_parameter_list );
2999+
3000+ zend_update_property (
3001+ Z_OBJCE_P (z_object ), Z_OBJ_P (z_object ),
3002+ "parameters" , strlen ("parameters" ),
3003+ & z_body_parameter_list
3004+ );
3005+ zval_ptr_dtor (& z_body_parameter_list );
30083006}
30093007
30103008/* {{{ Read the structure of a specified body section of a specific message */
@@ -4243,9 +4241,6 @@ static zend_string* _php_imap_parse_address (ADDRESS *address_list, zval *paddre
42434241/* {{{ _php_make_header_object */
42444242static void _php_make_header_object (zval * myzvalue , ENVELOPE * en )
42454243{
4246- zval paddress ;
4247- zend_string * fulladdress = NULL ;
4248-
42494244 object_init (myzvalue );
42504245
42514246 if (en -> remail ) {
@@ -4316,101 +4311,157 @@ static void _php_make_header_object(zval *myzvalue, ENVELOPE *en)
43164311 }
43174312
43184313 if (en -> to ) {
4319- array_init (& paddress );
4320- fulladdress = _php_imap_parse_address (en -> to , & paddress );
4321- if (fulladdress ) {
4314+ zval to_address_parts ;
4315+ zend_string * to_full_address = NULL ;
4316+
4317+ array_init (& to_address_parts );
4318+ to_full_address = _php_imap_parse_address (en -> to , & to_address_parts );
4319+ if (to_full_address ) {
43224320 zend_update_property_str (
43234321 Z_OBJCE_P (myzvalue ), Z_OBJ_P (myzvalue ),
43244322 "toaddress" , strlen ("toaddress" ),
4325- fulladdress
4323+ to_full_address
43264324 );
4327- zend_string_release (fulladdress );
4325+ zend_string_release (to_full_address );
43284326 }
4329- php_imap_hash_add_object (myzvalue , "to" , & paddress );
4327+ zend_update_property (
4328+ Z_OBJCE_P (myzvalue ), Z_OBJ_P (myzvalue ),
4329+ "to" , strlen ("to" ),
4330+ & to_address_parts
4331+ );
4332+ zval_ptr_dtor (& to_address_parts );
43304333 }
43314334
43324335 if (en -> from ) {
4333- array_init (& paddress );
4334- fulladdress = _php_imap_parse_address (en -> from , & paddress );
4335- if (fulladdress ) {
4336+ zval from_address_parts ;
4337+ zend_string * from_full_address = NULL ;
4338+
4339+ array_init (& from_address_parts );
4340+ from_full_address = _php_imap_parse_address (en -> from , & from_address_parts );
4341+ if (from_full_address ) {
43364342 zend_update_property_str (
43374343 Z_OBJCE_P (myzvalue ), Z_OBJ_P (myzvalue ),
43384344 "fromaddress" , strlen ("fromaddress" ),
4339- fulladdress
4345+ from_full_address
43404346 );
4341- zend_string_release (fulladdress );
4347+ zend_string_release (from_full_address );
43424348 }
4343- php_imap_hash_add_object (myzvalue , "from" , & paddress );
4349+ zend_update_property (
4350+ Z_OBJCE_P (myzvalue ), Z_OBJ_P (myzvalue ),
4351+ "from" , strlen ("from" ),
4352+ & from_address_parts
4353+ );
4354+ zval_ptr_dtor (& from_address_parts );
43444355 }
43454356
43464357 if (en -> cc ) {
4347- array_init (& paddress );
4348- fulladdress = _php_imap_parse_address (en -> cc , & paddress );
4349- if (fulladdress ) {
4358+ zval cc_address_parts ;
4359+ zend_string * cc_full_address = NULL ;
4360+
4361+ array_init (& cc_address_parts );
4362+ cc_full_address = _php_imap_parse_address (en -> cc , & cc_address_parts );
4363+ if (cc_full_address ) {
43504364 zend_update_property_str (
43514365 Z_OBJCE_P (myzvalue ), Z_OBJ_P (myzvalue ),
43524366 "ccaddress" , strlen ("ccaddress" ),
4353- fulladdress
4367+ cc_full_address
43544368 );
4355- zend_string_release (fulladdress );
4369+ zend_string_release (cc_full_address );
43564370 }
4357- php_imap_hash_add_object (myzvalue , "cc" , & paddress );
4371+ zend_update_property (
4372+ Z_OBJCE_P (myzvalue ), Z_OBJ_P (myzvalue ),
4373+ "cc" , strlen ("cc" ),
4374+ & cc_address_parts
4375+ );
4376+ zval_ptr_dtor (& cc_address_parts );
43584377 }
43594378
43604379 if (en -> bcc ) {
4361- array_init (& paddress );
4362- fulladdress = _php_imap_parse_address (en -> bcc , & paddress );
4363- if (fulladdress ) {
4380+ zval bcc_address_parts ;
4381+ zend_string * bcc_full_address = NULL ;
4382+
4383+ array_init (& bcc_address_parts );
4384+ bcc_full_address = _php_imap_parse_address (en -> bcc , & bcc_address_parts );
4385+ if (bcc_full_address ) {
43644386 zend_update_property_str (
43654387 Z_OBJCE_P (myzvalue ), Z_OBJ_P (myzvalue ),
43664388 "bccaddress" , strlen ("bccaddress" ),
4367- fulladdress
4389+ bcc_full_address
43684390 );
4369- zend_string_release (fulladdress );
4391+ zend_string_release (bcc_full_address );
43704392 }
4371- php_imap_hash_add_object (myzvalue , "bcc" , & paddress );
4393+ zend_update_property (
4394+ Z_OBJCE_P (myzvalue ), Z_OBJ_P (myzvalue ),
4395+ "bcc" , strlen ("bcc" ),
4396+ & bcc_address_parts
4397+ );
4398+ zval_ptr_dtor (& bcc_address_parts );
43724399 }
43734400
43744401 if (en -> reply_to ) {
4375- array_init (& paddress );
4376- fulladdress = _php_imap_parse_address (en -> reply_to , & paddress );
4377- if (fulladdress ) {
4402+ zval reply_to_address_parts ;
4403+ zend_string * reply_to_full_address = NULL ;
4404+
4405+ array_init (& reply_to_address_parts );
4406+ reply_to_full_address = _php_imap_parse_address (en -> reply_to , & reply_to_address_parts );
4407+ if (reply_to_full_address ) {
43784408 zend_update_property_str (
43794409 Z_OBJCE_P (myzvalue ), Z_OBJ_P (myzvalue ),
43804410 "reply_toaddress" , strlen ("reply_toaddress" ),
4381- fulladdress
4411+ reply_to_full_address
43824412 );
4383- zend_string_release (fulladdress );
4413+ zend_string_release (reply_to_full_address );
43844414 }
4385- php_imap_hash_add_object (myzvalue , "reply_to" , & paddress );
4415+ zend_update_property (
4416+ Z_OBJCE_P (myzvalue ), Z_OBJ_P (myzvalue ),
4417+ "reply_to" , strlen ("reply_to" ),
4418+ & reply_to_address_parts
4419+ );
4420+ zval_ptr_dtor (& reply_to_address_parts );
43864421 }
43874422
43884423 if (en -> sender ) {
4389- array_init (& paddress );
4390- fulladdress = _php_imap_parse_address (en -> sender , & paddress );
4391- if (fulladdress ) {
4424+ zval sender_address_parts ;
4425+ zend_string * sender_full_address = NULL ;
4426+
4427+ array_init (& sender_address_parts );
4428+ sender_full_address = _php_imap_parse_address (en -> sender , & sender_address_parts );
4429+ if (sender_full_address ) {
43924430 zend_update_property_str (
43934431 Z_OBJCE_P (myzvalue ), Z_OBJ_P (myzvalue ),
43944432 "senderaddress" , strlen ("senderaddress" ),
4395- fulladdress
4433+ sender_full_address
43964434 );
4397- zend_string_release (fulladdress );
4435+ zend_string_release (sender_full_address );
43984436 }
4399- php_imap_hash_add_object (myzvalue , "sender" , & paddress );
4437+ zend_update_property (
4438+ Z_OBJCE_P (myzvalue ), Z_OBJ_P (myzvalue ),
4439+ "sender" , strlen ("sender" ),
4440+ & sender_address_parts
4441+ );
4442+ zval_ptr_dtor (& sender_address_parts );
44004443 }
44014444
44024445 if (en -> return_path ) {
4403- array_init (& paddress );
4404- fulladdress = _php_imap_parse_address (en -> return_path , & paddress );
4405- if (fulladdress ) {
4446+ zval return_path_address_parts ;
4447+ zend_string * return_path_full_address = NULL ;
4448+
4449+ array_init (& return_path_address_parts );
4450+ return_path_full_address = _php_imap_parse_address (en -> return_path , & return_path_address_parts );
4451+ if (return_path_full_address ) {
44064452 zend_update_property_str (
44074453 Z_OBJCE_P (myzvalue ), Z_OBJ_P (myzvalue ),
44084454 "return_pathaddress" , strlen ("return_pathaddress" ),
4409- fulladdress
4455+ return_path_full_address
44104456 );
4411- zend_string_release (fulladdress );
4457+ zend_string_release (return_path_full_address );
44124458 }
4413- php_imap_hash_add_object (myzvalue , "return_path" , & paddress );
4459+ zend_update_property (
4460+ Z_OBJCE_P (myzvalue ), Z_OBJ_P (myzvalue ),
4461+ "return_path" , strlen ("return_path" ),
4462+ & return_path_address_parts
4463+ );
4464+ zval_ptr_dtor (& return_path_address_parts );
44144465 // From rebase might need?
44154466 //add_assoc_object(myzvalue, "return_path", &paddress);
44164467 }
@@ -4433,7 +4484,13 @@ void _php_imap_add_body(zval *arg, const BODY *body)
44334484 _php_imap_add_body (& z_content_part , & content_part -> body );
44344485 zend_hash_next_index_insert_new (Z_ARR (z_content_part_list ), & z_content_part );
44354486 }
4436- php_imap_hash_add_object (arg , "parts" , & z_content_part_list );
4487+
4488+ zend_update_property (
4489+ Z_OBJCE_P (arg ), Z_OBJ_P (arg ),
4490+ "parts" , strlen ("parts" ),
4491+ & z_content_part_list
4492+ );
4493+ zval_ptr_dtor (& z_content_part_list );
44374494 }
44384495
44394496 /* encapsulated message ? */
@@ -4445,7 +4502,13 @@ void _php_imap_add_body(zval *arg, const BODY *body)
44454502 object_init (& message );
44464503 _php_imap_add_body (& message , message_body );
44474504 zend_hash_next_index_insert_new (Z_ARR (message_list ), & message );
4448- php_imap_hash_add_object (arg , "parts" , & message_list );
4505+
4506+ zend_update_property (
4507+ Z_OBJCE_P (arg ), Z_OBJ_P (arg ),
4508+ "parts" , strlen ("parts" ),
4509+ & message_list
4510+ );
4511+ zval_ptr_dtor (& message_list );
44494512 }
44504513}
44514514/* }}} */
0 commit comments