On Thu, Jan 21, 2016 at 06:55:41AM +0900, 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.
>
> 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?
>
> Regards
>
> --
> Yasuo Ohgaki
> yohg...@ohgaki.net
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>

Hi!

I tried to get access to that page as well, but didn't have any luck
would you mind adding the zend_parse_paramaters changes?

'l' went from 'long' -> 'zend_long' and 's' went from 'int' -> 'size_t'.

So many extensions have been ported without this in mind, and it bites
in really nasty hard to reproduce runtime ways.

thanks!

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to