zval_copy_ctor used on an array makes a reference copy of the array.
Basically, it just copies all the data items in the hashtable and then adds one to the 
reference count for all data items. 

Looking at the code, it appears to not recursively copy into nested arrays.
(Could be part of your problem)
Since this is a reference copy, you can not free the memory used by 
the array you are copying. I am assuming that this is the cause of your default.

-Jason



----- Original Message ----- 
From: "Wez Furlong" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, May 11, 2001 8:42 PM
Subject: [PHP-DEV] zval_copy_ctor


> Hi,
> 
> In my mailparse extension I am building up an array to contain the headers
> while parsing the message.  The array is held in a zval in the internal C
> structure, one for each message part.
> 
> When the "user space" code requests info for a particular message part it
> is returned as an assoc. array. One of the keys contains the headers;
> 
> eg:
> 
> $info => array(
>    "content-type" => "text/plain",
>    "headers" => array(
>        "to" => "[EMAIL PROTECTED]",
>        "from" => [EMAIL PROTECTED]"
>    )
> );
> 
> So far, to do this I am using this code:
> 
> zval * headers;
> 
> MAKE_STD_ZVAL(headers);
> *headers = *rfcbuf->headers;
> if (zval_copy_ctor(headers) == SUCCESS)  {
>    zend_hash_update(HASH_OF(return_value), "headers",
>        strlen("headers") + 1, &headers, sizeof(headers)
>        NULL);
> }
> 
> where rfcbuf->headers is a "zval *" created using MAKE_STD_ZVAL and
> array_init.
> 
> It seems to work OK.
> 
> Is it correct?  The ZendAPI docs aren't 100% clear about using the copy
> constructor, and I am experiencing intermittent segfaults in a specific
> part of my "application" that uses this code.
> 
> --Wez.
> 
> 
> 
> -- 
> PHP Development Mailing List <http://www.php.net/>
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]
> 


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to