Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:90751 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 39758 invoked from network); 20 Jan 2016 22:28:47 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 20 Jan 2016 22:28:47 -0000 Authentication-Results: pb1.pair.com header.from=nikita.ppv@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=nikita.ppv@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.160.181 as permitted sender) X-PHP-List-Original-Sender: nikita.ppv@gmail.com X-Host-Fingerprint: 209.85.160.181 mail-yk0-f181.google.com Received: from [209.85.160.181] ([209.85.160.181:34877] helo=mail-yk0-f181.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 99/88-22511-D1A00A65 for ; Wed, 20 Jan 2016 17:28:45 -0500 Received: by mail-yk0-f181.google.com with SMTP id s126so2627517ykf.2 for ; Wed, 20 Jan 2016 14:28:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=bMLsoDrJPNQ3mL/kX8y068vOYznabqbCr6i3/8IYar4=; b=0WtIig51hVBIqfeFqlwt9iu8sfQtpJyOpuX5JV/HoB+NMxzPJzBHT+iXN1xNRgZLdY 6UekvYAoG0cqSsVAHn3HNQ5jYPmBTHw2UMxkAaoaMcn12SGLvCGQVzLyFaW6joosv7JC 9o7RLW/o5FCWh7U1bvxK7btTFwsjUHCZfdnao7qIbQTkdRT7CFqxQssmWz2IFRXFalKT IKILZFuZ+XHVnhRRy0PxPI6RHvLa3BxyG6zxQx5LDa8aIwDL6MQD0sPisAqun1xxJWeZ +F03tFGUxQ54dxZ+bQfyJUiXyiCKgLbCMd4CJrgI8Dzv08EJwLrazl2oFP9x581vbd1L plog== 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=bMLsoDrJPNQ3mL/kX8y068vOYznabqbCr6i3/8IYar4=; b=kOcUVULDwGNv+PPMMhivMxqCHlLYIGPNWVRrW3hwAZt2pAsdZDVHm3dQd3XxJBr+gY by9Ekrb4vXDrmaR5qeaD+LA2ifkQo/7f0heLHvgM4ZRkb27+aHLfZ8rPyddjfxfm/IhX jCgVmyHQHs4n3Bow7L97D2xLwlArLh4Ao35qnCKnhheB+9z2M1gGsYGV5G/uCwAhHTY5 jhI1cGv6PmdT0P1RoK4EWLx/U/aqxp42KbirxPDaNge8eM4zWtzbGA2HsfTjNvEDT7ey U3+lBcw4DLk4/o4PIBcqMlspaBHcn0ZP9pZCLR1/mK+SlsnMegk0bcV9xHyPt/Jwscs+ G8mQ== X-Gm-Message-State: ALoCoQlPT8I5eE+le2So8zHSGz/jIMzRPBQFYWmFxaPtk4QrgdFwIvari9EnYHkCpkIHx00P2bR5wPZZBgw/dEntcgyVZzxx1g== MIME-Version: 1.0 X-Received: by 10.37.3.129 with SMTP id 123mr11651097ybd.46.1453328922344; Wed, 20 Jan 2016 14:28:42 -0800 (PST) Received: by 10.129.148.70 with HTTP; Wed, 20 Jan 2016 14:28:42 -0800 (PST) In-Reply-To: References: Date: Wed, 20 Jan 2016 23:28:42 +0100 Message-ID: To: Yasuo Ohgaki Cc: "internals@lists.php.net" Content-Type: multipart/alternative; boundary=001a11c0219e28831f0529cb822c Subject: Re: [PHP-DEV] WIKI: phpng-upgrading From: nikita.ppv@gmail.com (Nikita Popov) --001a11c0219e28831f0529cb822c Content-Type: text/plain; charset=UTF-8 On Wed, Jan 20, 2016 at 10:55 PM, Yasuo Ohgaki wrote: > Hi ZendEngine developers, > > I'm not sure if the wiki page is maintained, but I noticed few errors. > > https://wiki.php.net/phpng-upgrading#strings > has following example. > > - ZVAL_STRING(zv, str, 1); > + ZVAL_STRING(zv, str); > > - ZVAL_STRINGL(zv, str, len, 1); > + ZVAL_STRINGL(zv, str, len); > > - ZVAL_STRING(zv, str, 0); > + ZVAL_STRING(zv, str); > + efree(str); > > - ZVAL_STRINGL(zv, str, len, 0); > + ZVAL_STRINGL(zv, str, len); > + efree(str); > > Since PHP5 has following definition for ZVAL_STRING*() > > #define ZVAL_STRING(z, s, duplicate) do { \ > const char *__s=(s); \ > zval *__z = (z); \ > Z_STRLEN_P(__z) = strlen(__s); \ > Z_STRVAL_P(__z) = (duplicate?estrndup(__s, > Z_STRLEN_P(__z)):(char*)__s);\ > Z_TYPE_P(__z) = IS_STRING; \ > } while (0) > > the example's 0 and 1 are flipped, efree() locations are wrong. > These examples are correct. In PHP 7 ZVAL_STRING always duplicates, which is what the 1 parameter used to signify. > In https://wiki.php.net/phpng-upgrading#zend_string_api , > it says > > zend_string_init(char *val, int len, int persistent) > > Current definition is > > zend_string_init(char *val, size_t len, int persistent) > > Should I update the doc or is the doc is maintained > elsewhere? > I've fixed this. But yes, you should update the doc, it's not maintained elsewhere. Thanks, Nikita --001a11c0219e28831f0529cb822c--