mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-06-07 20:28:38 +00:00
Remove _get_poll lookup in Message constructor
This was triggering a terrible performance regression for no good reason for all created messages that didn't have a poll, which is essentially 99.99% of messages leading to MESSAGE_CREATE dispatches having degraded performance.
This commit is contained in:
parent
dee5bf65c6
commit
733c583b72
@ -1849,7 +1849,7 @@ class Message(PartialMessage, Hashable):
|
|||||||
try:
|
try:
|
||||||
self.poll = Poll._from_data(data=data['poll'], message=self, state=state)
|
self.poll = Poll._from_data(data=data['poll'], message=self, state=state)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
self.poll = state._get_poll(self.id)
|
pass
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# if the channel doesn't have a guild attribute, we handle that
|
# if the channel doesn't have a guild attribute, we handle that
|
||||||
|
@ -510,12 +510,6 @@ class ConnectionState(Generic[ClientT]):
|
|||||||
def _get_message(self, msg_id: Optional[int]) -> Optional[Message]:
|
def _get_message(self, msg_id: Optional[int]) -> Optional[Message]:
|
||||||
return utils.find(lambda m: m.id == msg_id, reversed(self._messages)) if self._messages else None
|
return utils.find(lambda m: m.id == msg_id, reversed(self._messages)) if self._messages else None
|
||||||
|
|
||||||
def _get_poll(self, msg_id: Optional[int]) -> Optional[Poll]:
|
|
||||||
message = self._get_message(msg_id)
|
|
||||||
if not message:
|
|
||||||
return
|
|
||||||
return message.poll
|
|
||||||
|
|
||||||
def _add_guild_from_data(self, data: GuildPayload) -> Guild:
|
def _add_guild_from_data(self, data: GuildPayload) -> Guild:
|
||||||
guild = Guild(data=data, state=self)
|
guild = Guild(data=data, state=self)
|
||||||
self._add_guild(guild)
|
self._add_guild(guild)
|
||||||
|
@ -721,11 +721,6 @@ class _WebhookState:
|
|||||||
return self._parent._get_guild(guild_id)
|
return self._parent._get_guild(guild_id)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def _get_poll(self, msg_id: Optional[int]) -> Optional[Poll]:
|
|
||||||
if self._parent is not None:
|
|
||||||
return self._parent._get_poll(msg_id)
|
|
||||||
return None
|
|
||||||
|
|
||||||
def store_user(self, data: Union[UserPayload, PartialUserPayload], *, cache: bool = True) -> BaseUser:
|
def store_user(self, data: Union[UserPayload, PartialUserPayload], *, cache: bool = True) -> BaseUser:
|
||||||
if self._parent is not None:
|
if self._parent is not None:
|
||||||
return self._parent.store_user(data, cache=cache)
|
return self._parent.store_user(data, cache=cache)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user