mirror of
https://github.com/rakshasa/rtorrent.git
synced 2026-08-07 10:42:31 +00:00
commit 30addc1a5e
Author: kannibalox <kannibalox@gmail.com> Date: Mon Jun 10 13:09:29 2024 -0400 Use regular iterators intead of bucket-local ones Trying to manually predict which bucket a hashed key will land in does not appear to be well-defined behavior. Fixes #1285
This commit is contained in:
@@ -146,7 +146,7 @@ system_method_insert_object(const torrent::Object::list_type& args, int flags) {
|
||||
const std::string& rawKey = (itrArgs++)->as_string();
|
||||
|
||||
if (rawKey.empty() ||
|
||||
control->object_storage()->find_local(torrent::raw_string::from_string(rawKey)) != control->object_storage()->end(0) ||
|
||||
control->object_storage()->find_raw_string(torrent::raw_string::from_string(rawKey)) != control->object_storage()->end() ||
|
||||
rpc::commands.has(rawKey) || rpc::commands.has(rawKey + ".set"))
|
||||
throw torrent::input_error("Invalid key.");
|
||||
|
||||
@@ -355,11 +355,11 @@ system_method_set_function(const torrent::Object::list_type& args) {
|
||||
if (args.empty())
|
||||
throw torrent::input_error("Invalid argument count.");
|
||||
|
||||
rpc::object_storage::local_iterator itr =
|
||||
control->object_storage()->find_local(torrent::raw_string::from_string(args.front().as_string()));
|
||||
rpc::object_storage::iterator itr =
|
||||
control->object_storage()->find_raw_string(torrent::raw_string::from_string(args.front().as_string()));
|
||||
|
||||
if (itr == control->object_storage()->end(0) || itr->second.flags & rpc::object_storage::flag_constant)
|
||||
throw torrent::input_error("Command is not modifiable.");
|
||||
if (itr == control->object_storage()->end() || itr->second.flags & rpc::object_storage::flag_constant)
|
||||
throw torrent::input_error("Command is not modifiable.");
|
||||
|
||||
return control->object_storage()->set_str_function(args.front().as_string(),
|
||||
system_method_generate_command(++args.begin(), args.end()));
|
||||
|
||||
Reference in New Issue
Block a user