I like the last patch. I think ZEND_ACC_STATIC flag must not make any
problems.

However, I thought about one more inconsistent. Your patch works fine for
"parent::" methods but not for "grandparents::"
In the following code "default constructor" won't work.

class A {
}
class B extends A {
}
class C extends B {
  function __constructor() {
    A::_constructor(); // this won't work
  }
}

It's not a big problem to fix implementation to support it, or may be
support for "parent::" is enough.
Anyway, it should be reflected in RFC (if this code should work or should
not).

Thanks. Dmitry.


On Fri, Nov 21, 2014 at 10:40 AM, Dmitry Stogov <dmi...@zend.com> wrote:

> thanks Stas. I'll think on next week.
>
> Dmitry.
>
> On Fri, Nov 21, 2014 at 6:59 AM, Stanislav Malyshev <smalys...@gmail.com>
> wrote:
>
>> Hi!
>>
>> >> Additional check for ZEND_NULL_FUNCTION in DO_FCALL may be expensive.
>> >> I think it must be better to use special predefined function (see
>> >> "zend_pass_function" usage in zend_vm_def.h).
>>
>> I've made a different implementation here:
>>
>> https://github.com/smalyshev/php-src/compare/php:master...smalyshev:default_ctor_func?expand=1
>>
>> which uses zend_pass_function but I had to make it static since
>> otherwise it's increase refcount for object and it doesn't seem like it
>> decrements back. So I'm not sure if it's right, what do you think?
>>
>> --
>> Stas Malyshev
>> smalys...@gmail.com
>>
>
>

Reply via email to