Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:79120 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 38465 invoked from network); 24 Nov 2014 09:57:01 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 24 Nov 2014 09:57:01 -0000 Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 209.85.220.177 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 209.85.220.177 mail-vc0-f177.google.com Received: from [209.85.220.177] ([209.85.220.177:50332] helo=mail-vc0-f177.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id EF/C0-33396-CE003745 for ; Mon, 24 Nov 2014 04:57:00 -0500 Received: by mail-vc0-f177.google.com with SMTP id ij19so3813247vcb.22 for ; Mon, 24 Nov 2014 01:56:57 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=5+QL4h2KTMn3p8KJuSxb2PySHH8y+JDyPmYzX4K5waQ=; b=kKwWcEYedWtpGUgRLTGB/V8P8wARgegazq4v2Fnpm37nP4BcebJptq9nzte9AFT55B WlTAthsJiOm98fN3/PB66zUpQjVp+TE1vDDED/Db3Tk3QmVYDC3Pde0HWNpYdjmHcU6u cgQEyrDYCxRLIeVYuvBqQ0mH8MWonrMGpPUoD8RP97undOWqzNO9qfUC8BzQXD0qGmU9 UqAt0GChGY44xioNyet+Cwg1u5hU+N+YDJ9w9I3FoekupOzq2Zw95ncfNmGDsfwanCKl yyQoI47qr/xMm5RoH++fX0Cf1DhRk+nY41u04CqrHuq8//NdOSFEN1Ebg4IOiyd3oeF8 eosg== X-Gm-Message-State: ALoCoQkEskhUG0lvqEOTfCarz8RFi7ot7qeC+ADKaYxYOv8AM78nULmiwubXFb3qRZm+adATd+vq9YstEILZAAsVz27wej8rpIQ9vvTRuR4BdDS1wBcsUlRTK5xnLmrnOGJ3rlR9xN8Vj3+yYfqq+SuwEqcytQpnXg== MIME-Version: 1.0 X-Received: by 10.52.117.161 with SMTP id kf1mr9681624vdb.65.1416823017304; Mon, 24 Nov 2014 01:56:57 -0800 (PST) Received: by 10.52.176.231 with HTTP; Mon, 24 Nov 2014 01:56:57 -0800 (PST) In-Reply-To: References: <546B0F62.1090705@gmail.com> <546E3656.2010608@gmail.com> <546EB8B3.3020807@gmail.com> Date: Mon, 24 Nov 2014 13:56:57 +0400 Message-ID: To: Stanislav Malyshev Cc: PHP Internals Content-Type: multipart/alternative; boundary=bcaec547cbdda81652050897d041 Subject: Re: [PHP-DEV] [RFC] Default constructors From: dmitry@zend.com (Dmitry Stogov) --bcaec547cbdda81652050897d041 Content-Type: text/plain; charset=UTF-8 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 wrote: > thanks Stas. I'll think on next week. > > Dmitry. > > On Fri, Nov 21, 2014 at 6:59 AM, Stanislav Malyshev > 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 >> smalyshev@gmail.com >> > > --bcaec547cbdda81652050897d041--