Merge branch 'PHP-5.4' into PHP-5.5

* PHP-5.4:
  Fixed bug #64128 buit-in web server is broken on ppc64.
This commit is contained in:
Remi Collet 2013-02-01 19:26:11 +01:00
commit 5d3501c7d4

View File

@ -712,10 +712,9 @@ static void php_cli_server_poller_remove(php_cli_server_poller *poller, int mode
if (fd == poller->max_fd) {
while (fd > 0) {
fd--;
if (((unsigned int *)&poller->rfds)[fd / (8 * sizeof(unsigned int))] || ((unsigned int *)&poller->wfds)[fd / (8 * sizeof(unsigned int))]) {
if (PHP_SAFE_FD_ISSET(fd, &poller->rfds) || PHP_SAFE_FD_ISSET(fd, &poller->wfds)) {
break;
}
fd -= fd % (8 * sizeof(unsigned int));
}
poller->max_fd = fd;
}
@ -774,23 +773,20 @@ static int php_cli_server_poller_iter_on_active(php_cli_server_poller *poller, v
}
#else
php_socket_t fd = 0;
php_socket_t fd;
const php_socket_t max_fd = poller->max_fd;
const unsigned int *pr = (unsigned int *)&poller->active.rfds,
*pw = (unsigned int *)&poller->active.wfds,
*e = pr + (max_fd + (8 * sizeof(unsigned int)) - 1) / (8 * sizeof(unsigned int));
unsigned int mask;
while (pr < e && fd <= max_fd) {
for (mask = 1; mask; mask <<= 1, fd++) {
int events = (*pr & mask ? POLLIN: 0) | (*pw & mask ? POLLOUT: 0);
if (events) {
if (SUCCESS != callback(opaque, fd, events)) {
retval = FAILURE;
}
}
for (fd=0 ; fd<=max_fd ; fd++) {
if (PHP_SAFE_FD_ISSET(fd, &poller->active.rfds)) {
if (SUCCESS != callback(opaque, fd, POLLIN)) {
retval = FAILURE;
}
}
if (PHP_SAFE_FD_ISSET(fd, &poller->active.wfds)) {
if (SUCCESS != callback(opaque, fd, POLLOUT)) {
retval = FAILURE;
}
}
pr++;
pw++;
}
#endif
return retval;