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