Skip to content

Commit

Permalink
Fix segfault in player migration and crash in log_deprecated
Browse files Browse the repository at this point in the history
Makes log_deprecated work when triggered from no function
  • Loading branch information
SmallJoker committed May 14, 2018
1 parent a01a9ca commit a1598e1
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
8 changes: 6 additions & 2 deletions src/content_sao.cpp
Expand Up @@ -1166,8 +1166,12 @@ void PlayerSAO::setBasePosition(const v3f &position)

// This needs to be ran for attachments too
ServerActiveObject::setBasePosition(position);
m_env->updateActiveObject(this);
m_position_not_sent = true;

// Updating is not wanted/required for player migration
if (m_env) {
m_env->updateActiveObject(this);
m_position_not_sent = true;
}
}

void PlayerSAO::setPos(const v3f &pos)
Expand Down
4 changes: 3 additions & 1 deletion src/script/common/c_internal.cpp
Expand Up @@ -153,7 +153,9 @@ void log_deprecated(lua_State *L, const std::string &message)
warningstream << message;
if (L) { // L can be NULL if we get called from scripting_game.cpp
lua_Debug ar;
FATAL_ERROR_IF(!lua_getstack(L, 2, &ar), "lua_getstack() failed");

if (!lua_getstack(L, 2, &ar))
FATAL_ERROR_IF(!lua_getstack(L, 1, &ar), "lua_getstack() failed");
FATAL_ERROR_IF(!lua_getinfo(L, "Sl", &ar), "lua_getinfo() failed");
warningstream << " (at " << ar.short_src << ":" << ar.currentline << ")";
}
Expand Down

0 comments on commit a1598e1

Please sign in to comment.