Hello Andi,
Tuesday, October 5, 2004, 3:06:57 AM, you wrote:
> Marcus,
> From reading this it doesn't seem as if this patch is array() specific but
> is a general one.
Yes it is a general one applicable to any function handling zvals with
greater data than the zval itself (array, string, maybe objects in ze1
compat mode).
> If I understand correctly, it will pass the hash (zval *) as-is and will
> never do a zval_copy_ctor(). This means that this value must for all
> practical purposes be read-only. What does this mean to the extension writer?
> Am I correct? We need to be sure that we don't add this new functionality
> without being sure how the extensions should handle it in order not to get
> side effects.
The extension writer must only use this arg-info flag if he is sure the
variables are not touched inside the function. It behaves exactly like
force by reference as long as you pass variables. Though the latter is
most often used to modify parameters by design. So the extension writer
should take care whether to use it.
regards
marcus