Skip to content
Browse files
Fix core.get_connected_players() returning unusable ObjectRefs
This bug is only exposed by 91eef64
independent of the move of get_connected_players from Lua to C++.
Previously, there would be a small time window where the SAO had
its peer ID set to PEER_ID_INEXISTENT but the RemotePlayer was
still linked to the SAO, resulting in an ObjectRef that crashed
on certain function calls (#9387).
  • Loading branch information
sfan5 committed Mar 3, 2020
1 parent 7dffd08 commit 1761d7d0f8a778e25ca70216520472a61610cbe5
Showing 1 changed file with 1 addition and 1 deletion.
@@ -651,7 +651,7 @@ int ModApiEnvMod::l_get_connected_players(lua_State *L)
if (player->getPeerId() == PEER_ID_INEXISTENT)
PlayerSAO *sao = player->getPlayerSAO();
if (sao) {
if (sao && !sao->isGone()) {
getScriptApiBase(L)->objectrefGetOrCreate(L, sao);
lua_rawseti(L, -2, ++i);

0 comments on commit 1761d7d

Please sign in to comment.