Hey: On Mon, Feb 9, 2015 at 5:06 AM, Jan Ehrhardt <php...@ehrhardt.nl> wrote: > Rasmus Lerdorf in php.internals (Thu, 05 Feb 2015 17:28:37 -0500): >>We have had quite a number of changes to the extension API and it >>worries me a little bit how long it will take everyone to get their >>extensions ported. We have UPGRADING.INTERNALS which still needs some >>love, but even if that covered everything it is sometimes hard to match >>a bullet point in a long list of changes to actual code. > > UPGRADING.INTERNALS is far from complete. Take for instance the > substantial changes in zend_hash_index_find(_ptr). Look at > PHP_FUNCTION(dba_list) in dba.c. In PHP 5.6 that is > > if (zend_hash_index_find(&EG(regular_list), i, (void **) &le)==FAILURE) > { > continue; > } > > PHP7: > if ((le = zend_hash_index_find_ptr(&EG(regular_list), i)) == NULL) { > continue; > } > > You'll have to use another macro, with a different number of arguments > and a different false test. There is nothing in UPGRADING.INTERNALS on > this. The info on this change can be found in the Wiki: > https://wiki.php.net/phpng-upgrading > > But the wiki on its turn is not complete either. For instance it still > mentions > > ZEND_FETCH_RESOURCE2(ib_link, ibase_db_link *, link_arg, link_id, > LE_LINK, le_link, le_plink); > > Since the API cleanup interbase does not compile anymore. The reason is > that the API cleanup brought substantial changes in > ZEND_FETCH_RESOURCE2. I guess this command now must be something like > > ib_link = (ibase_db_link *)zend_fetch_resource2(Z_RES_P(link_arg), > link_id, LE_LINK, le_link, le_plink); > > But this is only an educated guess based on looking at changes in other > extensions. At the moment I am struggling with the PHP7 translation of > this block: these are changes are made recently, I've updated the relates section in that wiki.
thanks > > #define GET_MOVIE_RESOURCE(ff_movie_ctx) {\ > zval **_tmp_zval;\ > if (zend_hash_find(Z_OBJPROP_P(getThis()), "ffmpeg_movie",\ > sizeof("ffmpeg_movie"), (void **)&_tmp_zval) == FAILURE) {\ > zend_error(E_WARNING, "Invalid ffmpeg_movie object");\ > RETURN_FALSE;\ > }\ > \ > ZEND_FETCH_RESOURCE2(ff_movie_ctx, ff_movie_context*, _tmp_zval, -1,\ > "ffmpeg_movie", le_ffmpeg_movie, le_ffmpeg_pmovie);\ > }\ > > I have tried a lot of things, but nothing works so far... > > An annotated diff would be very welcome! But more or less complete > documentation as well. > > Jan > > -- > PHP Internals - PHP Runtime Development Mailing List > To unsubscribe, visit: http://www.php.net/unsub.php > -- Xinchen Hui @Laruence http://www.laruence.com/ -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php