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

Reply via email to