mirror of
https://github.com/KingDuckZ/incredis
synced 2024-11-23 00:33:46 +00:00
Bugfix - command pointer became wrong when IncRedis got moved.
This commit is contained in:
parent
a9de3643f4
commit
0aee978661
3 changed files with 12 additions and 2 deletions
|
@ -39,13 +39,14 @@ namespace redis {
|
|||
explicit ScriptManager ( Command* parCommand );
|
||||
|
||||
boost::string_view submit_lua_script ( const std::string& parScript );
|
||||
void update_command_ptr (Command* parNewPtr);
|
||||
|
||||
private:
|
||||
using Sha1Array = std::array<char, 40>;
|
||||
|
||||
boost::string_view add_lua_script_ifn ( const std::string& parScript );
|
||||
|
||||
Command* const m_command;
|
||||
Command* m_command;
|
||||
#if defined(MAKE_SHA1_WITH_CRYPTOPP)
|
||||
std::set<Sha1Array> m_known_hashes;
|
||||
#else
|
||||
|
|
|
@ -48,7 +48,11 @@ namespace redis {
|
|||
{
|
||||
}
|
||||
|
||||
Command::Command (Command&&) = default;
|
||||
Command::Command (Command&& parOther) :
|
||||
m_local_data(std::move(parOther.m_local_data))
|
||||
{
|
||||
m_local_data->lua_scripts.update_command_ptr(this);
|
||||
}
|
||||
|
||||
Command::Command (std::string&& parSocket) :
|
||||
Command(std::move(parSocket), 0)
|
||||
|
|
|
@ -108,4 +108,9 @@ namespace redis {
|
|||
return boost::string_view(it_inserted->second.data(), it_inserted->second.size());
|
||||
}
|
||||
#endif
|
||||
|
||||
void ScriptManager::update_command_ptr (Command* parNewPtr) {
|
||||
assert(parNewPtr);
|
||||
m_command = parNewPtr;
|
||||
}
|
||||
} //namespace redis
|
||||
|
|
Loading…
Reference in a new issue