On 04/03/2007 07:26 PM, js wrote:
Hi gurus.

Fiddling with PHP extensions I found the following code in
'sapi_add_header_ex()' in SAPI.c

   if (!duplicate)
       efree(header_line);

which makes me wonder because the other day I read CODING_STANDARD
included in PHP src which says

"[1] Functions that are given pointers to resources should not free them
*snip*
Exceptions:
 - The function's designated behavior is freeing that resource.  E.g. efree()
 - The function is given a boolean argument, that controls whether or not
   the function may free its arguments (if true - the function must free its
   arguments, if false - it must not)
*snip*
"
I felt the rule above is incompatible with how efree and duplicate
flag is used in
sapi_add_header_ex().

So my question is...
Is this intentional?

Apparently yes.

If so, any reason to break the coding standard in this instance?

Standards are general rules, there might be some exceptions.
(It doesn't mean I personally like this code or encourage to ignore the 
standards).

and what does, in this context,  'duplicate' means?

See main/main.c, line 1119 for example.
It might be convenient to free duplicated buffer and ignore static one.

--
Wbr,
Antony Dovgal

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to