diff --git a/src/command_download.cc b/src/command_download.cc index 30abb4db..bc58b9ac 100644 --- a/src/command_download.cc +++ b/src/command_download.cc @@ -138,10 +138,9 @@ apply_d_change_link(core::Download* download, const torrent::Object::list_type& switch (changeType) { case 0: - if (symlink(target.c_str(), link.c_str()) == -1) + // if (symlink(target.c_str(), link.c_str()) == -1) // control->core()->push_log("create_link failed: " + std::string(rak::error_number::current().c_str())); // control->core()->push_log("create_link failed: " + std::string(rak::error_number::current().c_str()) + " to " + target); - ; // Disabled. break; case 1: @@ -150,9 +149,9 @@ apply_d_change_link(core::Download* download, const torrent::Object::list_type& rak::error_number::clear_global(); if (!fileStat.update_link(link) || !fileStat.is_link() || - unlink(link.c_str()) == -1) - ; // control->core()->push_log("delete_link failed: " + std::string(rak::error_number::current().c_str())); - + unlink(link.c_str()) == -1) { + // control->core()->push_log("delete_link failed: " + std::string(rak::error_number::current().c_str())); + } break; } default: diff --git a/src/command_dynamic.cc b/src/command_dynamic.cc index 6e834544..013f855e 100644 --- a/src/command_dynamic.cc +++ b/src/command_dynamic.cc @@ -156,7 +156,7 @@ system_method_insert_object(const torrent::Object::list_type& args, int flags) { (flags & rpc::object_storage::mask_type) == rpc::object_storage::flag_multi_type) { rpc::commands.insert_slot >::type> - (create_new_key<0>(rawKey, ""), + (create_new_key(rawKey), std::bind(&rpc::object_storage::call_function_str, control->object_storage(), rawKey, std::placeholders::_1, std::placeholders::_2), &rpc::command_base_call, @@ -164,7 +164,7 @@ system_method_insert_object(const torrent::Object::list_type& args, int flags) { } else { rpc::commands.insert_slot >::type> - (create_new_key<0>(rawKey, ""), + (create_new_key(rawKey), std::bind(&rpc::object_storage::get_str, control->object_storage(), rawKey), &rpc::command_base_call, cmd_flags, NULL, NULL); @@ -354,7 +354,7 @@ system_method_redirect(const torrent::Object::list_type& args) { std::string new_key = torrent::object_create_string(args.front()); std::string dest_key = torrent::object_create_string(args.back()); - rpc::commands.create_redirect(create_new_key<0>(new_key, ""), create_new_key<0>(dest_key, ""), + rpc::commands.create_redirect(create_new_key(new_key), create_new_key(dest_key), rpc::CommandMap::flag_public_xmlrpc | rpc::CommandMap::flag_delete_key | rpc::CommandMap::flag_modifiable); return torrent::Object(); diff --git a/src/command_helpers.h b/src/command_helpers.h index 8b290ced..b215ec2e 100644 --- a/src/command_helpers.h +++ b/src/command_helpers.h @@ -152,11 +152,11 @@ void initialize_commands(); rpc::commands.create_redirect(from_key, to_key, rpc::CommandMap::flag_public_xmlrpc | rpc::CommandMap::flag_tracker_target | rpc::CommandMap::flag_dont_delete); #define CMD2_REDIRECT_GENERIC_STR(from_key, to_key) \ - rpc::commands.create_redirect(create_new_key<0>(from_key, ""), create_new_key<0>(to_key, ""), \ + rpc::commands.create_redirect(create_new_key(from_key), create_new_key(to_key), \ rpc::CommandMap::flag_public_xmlrpc | rpc::CommandMap::flag_no_target | rpc::CommandMap::flag_delete_key); #define CMD2_REDIRECT_GENERIC_STR_NO_EXPORT(from_key, to_key) \ - rpc::commands.create_redirect(create_new_key<0>(from_key, ""), create_new_key<0>(to_key, ""), \ + rpc::commands.create_redirect(create_new_key(from_key), create_new_key(to_key), \ rpc::CommandMap::flag_no_target | rpc::CommandMap::flag_delete_key); // @@ -205,4 +205,11 @@ create_new_key(const std::string& key, const char postfix[postfix_size]) { return buffer; } +inline const char* +create_new_key(const std::string& key) { + char *buffer = new char[key.size() + 1]; + std::memcpy(buffer, key.c_str(), key.size() + 1); + return buffer; +} + #endif diff --git a/src/display/window_file_list.cc b/src/display/window_file_list.cc index 6a923dc7..7c9f692e 100644 --- a/src/display/window_file_list.cc +++ b/src/display/window_file_list.cc @@ -123,7 +123,7 @@ WindowFileList::redraw() { if (fl->size_files() == 0 || m_canvas->height() < 2) return; - iterator entries[m_canvas->height() - 1]; + std::vector entries(m_canvas->height() - 1); unsigned int last = 0; diff --git a/src/thread_base.h b/src/thread_base.h index 4cd38de5..479e3cdd 100644 --- a/src/thread_base.h +++ b/src/thread_base.h @@ -44,11 +44,9 @@ #include "rak/priority_queue_default.h" #include "core/poll_manager.h" -struct thread_queue_hack; - // Move this class to libtorrent. -struct thread_queue_hack; +class thread_queue_hack; class ThreadBase : public torrent::thread_base { public: