merged changes from RC_1_0
This commit is contained in:
parent
ed9b281ea4
commit
8b98261df1
|
@ -97,58 +97,6 @@ int load_file(std::string const& filename, std::vector<char>& v, libtorrent::err
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int line_longer_than(libtorrent::lazy_entry const& e, int limit)
|
|
||||||
{
|
|
||||||
using namespace libtorrent;
|
|
||||||
|
|
||||||
int line_len = 0;
|
|
||||||
switch (e.type())
|
|
||||||
{
|
|
||||||
case lazy_entry::list_t:
|
|
||||||
line_len += 4;
|
|
||||||
if (line_len > limit) return -1;
|
|
||||||
for (int i = 0; i < e.list_size(); ++i)
|
|
||||||
{
|
|
||||||
int ret = line_longer_than(*e.list_at(i), limit - line_len);
|
|
||||||
if (ret == -1) return -1;
|
|
||||||
line_len += ret + 2;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case lazy_entry::dict_t:
|
|
||||||
line_len += 4;
|
|
||||||
if (line_len > limit) return -1;
|
|
||||||
for (int i = 0; i < e.dict_size(); ++i)
|
|
||||||
{
|
|
||||||
line_len += 4 + e.dict_at(i).first.size();
|
|
||||||
if (line_len > limit) return -1;
|
|
||||||
int ret = line_longer_than(*e.dict_at(i).second, limit - line_len);
|
|
||||||
if (ret == -1) return -1;
|
|
||||||
line_len += ret + 1;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case lazy_entry::string_t:
|
|
||||||
line_len += 3 + e.string_length();
|
|
||||||
break;
|
|
||||||
case lazy_entry::int_t:
|
|
||||||
{
|
|
||||||
boost::int64_t val = e.int_value();
|
|
||||||
while (val > 0)
|
|
||||||
{
|
|
||||||
++line_len;
|
|
||||||
val /= 10;
|
|
||||||
}
|
|
||||||
line_len += 2;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case lazy_entry::none_t:
|
|
||||||
line_len += 4;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (line_len > limit) return -1;
|
|
||||||
return line_len;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
{
|
{
|
||||||
using namespace libtorrent;
|
using namespace libtorrent;
|
||||||
|
|
Loading…
Reference in New Issue