Re: [RFC][VOTE] Constructor behaviour of internal classes
| From: | Dmitry Stogov | Date: | Mon, 30 Mar 2015 16:06:15 +0000 |
| Subject: | Re: [RFC][VOTE] Constructor behaviour of internal classes | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-85560@lists.php.net to get a copy of this message | ||
Hi Dan,
The updated patch is at https://github.com/php/php-src/pull/1205
The main difference is in ext/intl.
If you don't see any problems I can commit it.
I didn't think about the classes you missed.
Thanks. Dmitry.
On Fri, Mar 27, 2015 at 7:32 PM, Dan Ackroyd <danack@basereality.com> wrote:
> On 26 March 2015 at 20:19, Dmitry Stogov <dmitry@zend.com> wrote:
> Hi Dmitry,
>
> > however the patch looks a bit surprising to me.
> > We have special function to do this - zend_ctor_make_null() and some
> tricks in the VM.
> > I made just a quick look over your patch but didn't find any references
> to them.
>
> Surprising is usually not good, so let me see if I can explain.
>
> I touched the minimal amount of code needed to achieve the desired
> behaviour. For the intl classes, the exception is being thrown by
> telling the intl error handling code to use an exception, no matter
> what the intl.use_exceptions setting is, if the error was emitted
> during a constructor:
>
>
> https://github.com/Danack/php-src/blob/InternalClassClean/ext/intl/intl_error.c#L114
>
> I didn't touch any of the code zend_ctor_make_null. I guess if it's
> only used in these special cases, and they are going away it could
> also be removed? But it sounds like that would be a job for someone
> who understands that bit.
>
> > Please don't commit it yet.
>
> That won't be difficult, I don't have commit rights, and don't
> particularly want them.
>
> > Nikita, could you also take a quick look.
>
> Nikita pointed out that I may have missed a couple of classes. I'll
> try to get those updated before you have a look.
>
> cheers
> Dan
>