{"action":"created","comment":{"url":"https://api.github.com/repos/php/php-src/pulls/comments/28119503","id":28119503,"diff_hunk":"@@ -1772,6 +1772,144 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FETCH_CLASS_NAME_SPEC_HANDLER(\n \tZEND_VM_NEXT_OPCODE();\n }\n \n+static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CALL_TRAMPOLINE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)\n+{\n+\tzend_array *args;\n+\tzend_function *fbc = EX(func);\n+\tzend_object *object = Z_OBJ(EX(This));\n+\tzval *ret = EX(return_value);\n+\tzend_call_kind call_kind = EX_CALL_KIND();\n+\tzend_class_entry *scope = EX(called_scope);\n+\tuint32_t num_args = EX_NUM_ARGS();\n+\tzend_execute_data *call;\n+\tUSE_OPLINE\n+\n+\targs = emalloc(sizeof(zend_array));\n+\tzend_hash_init(args, num_args, NULL, ZVAL_PTR_DTOR, 0);\n+\tif (num_args) {\n+\t\tzval *p = ZEND_CALL_ARG(execute_data, 1);\n+\t\tzval *end = p + num_args;\n+\n+\t\tzend_hash_real_init(args, 1);\n+\t\tZEND_HASH_FILL_PACKED(args) {\n+\t\t\tdo {\n+\t\t\t\tZEND_HASH_FILL_ADD(p);\n+\t\t\t\tp++;\n+\t\t\t} while (p != end);\n+\t\t} ZEND_HASH_FILL_END();\n+\t}\n+\n+\tSAVE_OPLINE();\n+\tcall = execute_data;\n+\texecute_data = EG(current_execute_data) = EX(prev_execute_data);\n+\tzend_vm_stack_free_call_frame(call);\n+\tcall = zend_vm_stack_push_call_frame(call_kind, fbc->common.prototype, 2, scope, object, execute_data);\n+\n+\tZVAL_STR(ZEND_CALL_ARG(call, 1), fbc->common.function_name);\n+\tZVAL_ARR(ZEND_CALL_ARG(call, 2), args);\n+\tzend_free_trampoline(fbc);\n+\tfbc = call->func;\n+\n+\tif (EXPECTED(fbc->type == ZEND_USER_FUNCTION)) {\n+\n+\t\tZEND_ASSERT(!(fbc->common.fn_flags & ZEND_ACC_GENERATOR));\n+\n+\t\tEG(scope) = fbc->common.scope;","path":"Zend/zend_vm_execute.h","position":67,"original_position":67,"commit_id":"4a9fb125aa999059f8bc42ebb6ee573c7866b35b","original_commit_id":"4a9fb125aa999059f8bc42ebb6ee573c7866b35b","user":{"login":"laruence","id":382813,"avatar_url":"https://avatars.githubusercontent.com/u/382813?v=3","gravatar_id":"","url":"https://api.github.com/users/laruence","html_url":"https://github.com/laruence","followers_url":"https://api.github.com/users/laruence/followers","following_url":"https://api.github.com/users/laruence/following{/other_user}","gists_url":"https://api.github.com/users/laruence/gists{/gist_id}","starred_url":"https://api.github.com/users/laruence/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laruence/subscriptions","organizations_url":"https://api.github.com/users/laruence/orgs","repos_url":"https://api.github.com/users/laruence/repos","events_url":"https://api.github.com/users/laruence/events{/privacy}","received_events_url":"https://api.github.com/users/laruence/received_events","type":"User","site_admin":false},"body":"EG(scope) is already set properly by previously call to this function (trampoline op_array). we don't need set it again here... ","created_at":"2015-04-10T02:37:01Z","updated_at":"2015-04-10T02:37:01Z","html_url":"https://github.com/php/php-src/pull/1234#discussion_r28119503","pull_request_url":"https://api.github.com/repos/php/php-src/pulls/1234","_links":{"self":{"href":"https://api.github.com/repos/php/php-src/pulls/comments/28119503"},"html":{"href":"https://github.com/php/php-src/pull/1234#discussion_r28119503"},"pull_request":{"href":"https://api.github.com/repos/php/php-src/pulls/1234"}}},"pull_request":{"url":"https://api.github.com/repos/php/php-src/pulls/1234","id":33005523,"html_url":"https://github.com/php/php-src/pull/1234","diff_url":"https://github.com/php/php-src/pull/1234.diff","patch_url":"https://github.com/php/php-src/pull/1234.patch","issue_url":"https://api.github.com/repos/php/php-src/issues/1234","number":1234,"state":"open","locked":false,"title":"Stackless execution of magic __call() and __callStatick() methods.","user":{"login":"dstogov","id":2510034,"avatar_url":"https://avatars.githubusercontent.com/u/2510034?v=3","gravatar_id":"","url":"https://api.github.com/users/dstogov","html_url":"https://github.com/dstogov","followers_url":"https://api.github.com/users/dstogov/followers","following_url":"https://api.github.com/users/dstogov/following{/other_user}","gists_url":"https://api.github.com/users/dstogov/gists{/gist_id}","starred_url":"https://api.github.com/users/dstogov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dstogov/subscriptions","organizations_url":"https://api.github.com/users/dstogov/orgs","repos_url":"https://api.github.com/users/dstogov/repos","events_url":"https://api.github.com/users/dstogov/events{/privacy}","received_events_url":"https://api.github.com/users/dstogov/received_events","type":"User","site_admin":false},"body":"- __call() and __callStatic() don't call execute_ex() recursively any more.\r\n- Recursive calls trough __call() won't lead to crash because of stack overflow.\r\n- We don't keep temporary call frames for \"fake\" functions (save VM stack).\r\n- Now __call() almost 2 times faster","created_at":"2015-04-09T23:14:09Z","updated_at":"2015-04-10T02:37:01Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e741b8e8f58113625f3acad888d14e2de946f5fd","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/php/php-src/pulls/1234/commits","review_comments_url":"https://api.github.com/repos/php/php-src/pulls/1234/comments","review_comment_url":"https://api.github.com/repos/php/php-src/pulls/comments{/number}","comments_url":"https://api.github.com/repos/php/php-src/issues/1234/comments","statuses_url":"https://api.github.com/repos/php/php-src/statuses/4a9fb125aa999059f8bc42ebb6ee573c7866b35b","head":{"label":"dstogov:opcodefy-call","ref":"opcodefy-call","sha":"4a9fb125aa999059f8bc42ebb6ee573c7866b35b","user":{"login":"dstogov","id":2510034,"avatar_url":"https://avatars.githubusercontent.com/u/2510034?v=3","gravatar_id":"","url":"https://api.github.com/users/dstogov","html_url":"https://github.com/dstogov","followers_url":"https://api.github.com/users/dstogov/followers","following_url":"https://api.github.com/users/dstogov/following{/other_user}","gists_url":"https://api.github.com/users/dstogov/gists{/gist_id}","starred_url":"https://api.github.com/users/dstogov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dstogov/subscriptions","organizations_url":"https://api.github.com/users/dstogov/orgs","repos_url":"https://api.github.com/users/dstogov/repos","events_url":"https://api.github.com/users/dstogov/events{/privacy}","received_events_url":"https://api.github.com/users/dstogov/received_events","type":"User","site_admin":false},"repo":{"id":14170416,"name":"php-src","full_name":"dstogov/php-src","owner":{"login":"dstogov","id":2510034,"avatar_url":"https://avatars.githubusercontent.com/u/2510034?v=3","gravatar_id":"","url":"https://api.github.com/users/dstogov","html_url":"https://github.com/dstogov","followers_url":"https://api.github.com/users/dstogov/followers","following_url":"https://api.github.com/users/dstogov/following{/other_user}","gists_url":"https://api.github.com/users/dstogov/gists{/gist_id}","starred_url":"https://api.github.com/users/dstogov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dstogov/subscriptions","organizations_url":"https://api.github.com/users/dstogov/orgs","repos_url":"https://api.github.com/users/dstogov/repos","events_url":"https://api.github.com/users/dstogov/events{/privacy}","received_events_url":"https://api.github.com/users/dstogov/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dstogov/php-src","description":"The PHP Interpreter","fork":true,"url":"https://api.github.com/repos/dstogov/php-src","forks_url":"https://api.github.com/repos/dstogov/php-src/forks","keys_url":"https://api.github.com/repos/dstogov/php-src/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dstogov/php-src/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dstogov/php-src/teams","hooks_url":"https://api.github.com/repos/dstogov/php-src/hooks","issue_events_url":"https://api.github.com/repos/dstogov/php-src/issues/events{/number}","events_url":"https://api.github.com/repos/dstogov/php-src/events","assignees_url":"https://api.github.com/repos/dstogov/php-src/assignees{/user}","branches_url":"https://api.github.com/repos/dstogov/php-src/branches{/branch}","tags_url":"https://api.github.com/repos/dstogov/php-src/tags","blobs_url":"https://api.github.com/repos/dstogov/php-src/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dstogov/php-src/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dstogov/php-src/git/refs{/sha}","trees_url":"https://api.github.com/repos/dstogov/php-src/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dstogov/php-src/statuses/{sha}","languages_url":"https://api.github.com/repos/dstogov/php-src/languages","stargazers_url":"https://api.github.com/repos/dstogov/php-src/stargazers","contributors_url":"https://api.github.com/repos/dstogov/php-src/contributors","subscribers_url":"https://api.github.com/repos/dstogov/php-src/subscribers","subscription_url":"https://api.github.com/repos/dstogov/php-src/subscription","commits_url":"https://api.github.com/repos/dstogov/php-src/commits{/sha}","git_commits_url":"https://api.github.com/repos/dstogov/php-src/git/commits{/sha}","comments_url":"https://api.github.com/repos/dstogov/php-src/comments{/number}","issue_comment_url":"https://api.github.com/repos/dstogov/php-src/issues/comments{/number}","contents_url":"https://api.github.com/repos/dstogov/php-src/contents/{+path}","compare_url":"https://api.github.com/repos/dstogov/php-src/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dstogov/php-src/merges","archive_url":"https://api.github.com/repos/dstogov/php-src/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dstogov/php-src/downloads","issues_url":"https://api.github.com/repos/dstogov/php-src/issues{/number}","pulls_url":"https://api.github.com/repos/dstogov/php-src/pulls{/number}","milestones_url":"https://api.github.com/repos/dstogov/php-src/milestones{/number}","notifications_url":"https://api.github.com/repos/dstogov/php-src/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dstogov/php-src/labels{/name}","releases_url":"https://api.github.com/repos/dstogov/php-src/releases{/id}","created_at":"2013-11-06T11:10:46Z","updated_at":"2015-04-09T23:04:30Z","pushed_at":"2015-04-09T23:04:04Z","git_url":"git://github.com/dstogov/php-src.git","ssh_url":"git@github.com:dstogov/php-src.git","clone_url":"https://github.com/dstogov/php-src.git","svn_url":"https://github.com/dstogov/php-src","homepage":"http://www.php.net","size":267099,"stargazers_count":3,"watchers_count":3,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":3,"default_branch":"master"}},"base":{"label":"php:master","ref":"master","sha":"858ca975c4961a8948e52578a96094a6625829ed","user":{"login":"php","id":25158,"avatar_url":"https://avatars.githubusercontent.com/u/25158?v=3","gravatar_id":"","url":"https://api.github.com/users/php","html_url":"https://github.com/php","followers_url":"https://api.github.com/users/php/followers","following_url":"https://api.github.com/users/php/following{/other_user}","gists_url":"https://api.github.com/users/php/gists{/gist_id}","starred_url":"https://api.github.com/users/php/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/php/subscriptions","organizations_url":"https://api.github.com/users/php/orgs","repos_url":"https://api.github.com/users/php/repos","events_url":"https://api.github.com/users/php/events{/privacy}","received_events_url":"https://api.github.com/users/php/received_events","type":"Organization","site_admin":false},"repo":{"id":1903522,"name":"php-src","full_name":"php/php-src","owner":{"login":"php","id":25158,"avatar_url":"https://avatars.githubusercontent.com/u/25158?v=3","gravatar_id":"","url":"https://api.github.com/users/php","html_url":"https://github.com/php","followers_url":"https://api.github.com/users/php/followers","following_url":"https://api.github.com/users/php/following{/other_user}","gists_url":"https://api.github.com/users/php/gists{/gist_id}","starred_url":"https://api.github.com/users/php/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/php/subscriptions","organizations_url":"https://api.github.com/users/php/orgs","repos_url":"https://api.github.com/users/php/repos","events_url":"https://api.github.com/users/php/events{/privacy}","received_events_url":"https://api.github.com/users/php/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/php/php-src","description":"The PHP Interpreter","fork":false,"url":"https://api.github.com/repos/php/php-src","forks_url":"https://api.github.com/repos/php/php-src/forks","keys_url":"https://api.github.com/repos/php/php-src/keys{/key_id}","collaborators_url":"https://api.github.com/repos/php/php-src/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/php/php-src/teams","hooks_url":"https://api.github.com/repos/php/php-src/hooks","issue_events_url":"https://api.github.com/repos/php/php-src/issues/events{/number}","events_url":"https://api.github.com/repos/php/php-src/events","assignees_url":"https://api.github.com/repos/php/php-src/assignees{/user}","branches_url":"https://api.github.com/repos/php/php-src/branches{/branch}","tags_url":"https://api.github.com/repos/php/php-src/tags","blobs_url":"https://api.github.com/repos/php/php-src/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/php/php-src/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/php/php-src/git/refs{/sha}","trees_url":"https://api.github.com/repos/php/php-src/git/trees{/sha}","statuses_url":"https://api.github.com/repos/php/php-src/statuses/{sha}","languages_url":"https://api.github.com/repos/php/php-src/languages","stargazers_url":"https://api.github.com/repos/php/php-src/stargazers","contributors_url":"https://api.github.com/repos/php/php-src/contributors","subscribers_url":"https://api.github.com/repos/php/php-src/subscribers","subscription_url":"https://api.github.com/repos/php/php-src/subscription","commits_url":"https://api.github.com/repos/php/php-src/commits{/sha}","git_commits_url":"https://api.github.com/repos/php/php-src/git/commits{/sha}","comments_url":"https://api.github.com/repos/php/php-src/comments{/number}","issue_comment_url":"https://api.github.com/repos/php/php-src/issues/comments{/number}","contents_url":"https://api.github.com/repos/php/php-src/contents/{+path}","compare_url":"https://api.github.com/repos/php/php-src/compare/{base}...{head}","merges_url":"https://api.github.com/repos/php/php-src/merges","archive_url":"https://api.github.com/repos/php/php-src/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/php/php-src/downloads","issues_url":"https://api.github.com/repos/php/php-src/issues{/number}","pulls_url":"https://api.github.com/repos/php/php-src/pulls{/number}","milestones_url":"https://api.github.com/repos/php/php-src/milestones{/number}","notifications_url":"https://api.github.com/repos/php/php-src/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/php/php-src/labels{/name}","releases_url":"https://api.github.com/repos/php/php-src/releases{/id}","created_at":"2011-06-16T01:52:25Z","updated_at":"2015-04-09T20:01:27Z","pushed_at":"2015-04-09T23:14:10Z","git_url":"git://github.com/php/php-src.git","ssh_url":"git@github.com:php/php-src.git","clone_url":"https://github.com/php/php-src.git","svn_url":"https://github.com/php/php-src","homepage":"http://www.php.net","size":1342470,"stargazers_count":5676,"watchers_count":5676,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":2037,"mirror_url":null,"open_issues_count":179,"forks":2037,"open_issues":179,"watchers":5676,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/php/php-src/pulls/1234"},"html":{"href":"https://github.com/php/php-src/pull/1234"},"issue":{"href":"https://api.github.com/repos/php/php-src/issues/1234"},"comments":{"href":"https://api.github.com/repos/php/php-src/issues/1234/comments"},"review_comments":{"href":"https://api.github.com/repos/php/php-src/pulls/1234/comments"},"review_comment":{"href":"https://api.github.com/repos/php/php-src/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/php/php-src/pulls/1234/commits"},"statuses":{"href":"https://api.github.com/repos/php/php-src/statuses/4a9fb125aa999059f8bc42ebb6ee573c7866b35b"}}}}