message: Fix refcount.
diff: @@ -1319,7 +1319,6 @@ static void stream_array_to_fd_set(zval *stream_array, std::unordered_map<int, s
  auto i = fds.find(sock);
  if (i == fds.end())
  {
  - zval_add_ref(elem);
  fds.emplace(make_pair(sock, socket_poll_fd(event, elem)));
  }
  else
  @@ -1487,8 +1486,7 @@ static PHP_FUNCTION(_stream_select)
  for (auto i = fds.begin(); i != fds.end(); i++)
  {
  - zval *sock = (zval *) i->second.ptr;
  - ZVAL_DEREF(sock);
  + zval *zsocket = (zval *) i->second.ptr;
  int revents = i->second.revents;
  if (revents == 0)
  {
  @@ -1496,15 +1494,24 @@ static PHP_FUNCTION(_stream_select)
  }
  if ((revents & SW_EVENT_READ) && r_array)
  {
  - add_next_index_zval(r_array, sock);
  + if (EXPECTED(add_next_index_zval(r_array, zsocket) == SUCCESS))
  + {
  + Z_TRY_ADDREF_P(zsocket);
  + }
  }
  if ((revents & SW_EVENT_WRITE) && w_array)
  {
  - add_next_index_zval(w_array, sock);
  + if (EXPECTED(add_next_index_zval(w_array, zsocket) == SUCCESS))
  + {
  + Z_TRY_ADDREF_P(zsocket);
  + }
  }
  if ((revents & SW_EVENT_ERROR) && e_array)
  {
  - add_next_index_zval(e_array, sock);
  + if (EXPECTED(add_next_index_zval(e_array, zsocket) == SUCCESS))
  + {
  + Z_TRY_ADDREF_P(zsocket);
  + }
  }
  retval++;
  }
  