clean up lazy bdecoder a bit

This commit is contained in:
Arvid Norberg 2013-10-22 22:41:58 +00:00
parent 9535142e00
commit 4e94ae592c
2 changed files with 7 additions and 17 deletions

View File

@ -39,13 +39,8 @@ POSSIBILITY OF SUCH DAMAGE.
#include <cstring> #include <cstring>
#include "libtorrent/config.hpp" #include "libtorrent/config.hpp"
#include "libtorrent/assert.hpp" #include "libtorrent/assert.hpp"
#include "libtorrent/size_type.hpp"
#include "libtorrent/error_code.hpp" #include "libtorrent/error_code.hpp"
#if TORRENT_USE_IOSTREAM
#include <iosfwd>
#endif
namespace libtorrent namespace libtorrent
{ {
struct lazy_entry; struct lazy_entry;
@ -166,7 +161,7 @@ namespace libtorrent
} }
// if this is an integer, return the integer value // if this is an integer, return the integer value
size_type int_value() const; boost::int64_t int_value() const;
// internal // internal
void construct_string(char const* start, int length); void construct_string(char const* start, int length);
@ -241,7 +236,7 @@ namespace libtorrent
// if this is a dictionary, look for a key ``name`` whose value // if this is a dictionary, look for a key ``name`` whose value
// is an int. If such key exist, return a pointer to its value, // is an int. If such key exist, return a pointer to its value,
// otherwise NULL. // otherwise NULL.
size_type dict_find_int_value(char const* name, size_type default_val = 0) const; boost::int64_t dict_find_int_value(char const* name, boost::int64_t default_val = 0) const;
lazy_entry const* dict_find_int(char const* name) const; lazy_entry const* dict_find_int(char const* name) const;
lazy_entry const* dict_find_dict(char const* name) const; lazy_entry const* dict_find_dict(char const* name) const;
@ -283,7 +278,7 @@ namespace libtorrent
std::string list_string_value_at(int i) const; std::string list_string_value_at(int i) const;
pascal_string list_pstr_at(int i) const; pascal_string list_pstr_at(int i) const;
size_type list_int_value_at(int i, size_type default_val = 0) const; boost::int64_t list_int_value_at(int i, boost::int64_t default_val = 0) const;
// if this is a list, return the number of items in it. // if this is a list, return the number of items in it.
int list_size() const int list_size() const

View File

@ -31,13 +31,8 @@ POSSIBILITY OF SUCH DAMAGE.
*/ */
#include "libtorrent/lazy_entry.hpp" #include "libtorrent/lazy_entry.hpp"
#include "libtorrent/escape_string.hpp"
#include <cstring> #include <cstring>
#if TORRENT_USE_IOSTREAM
#include <iostream>
#endif
namespace namespace
{ {
const int lazy_entry_grow_factor = 150; // percent const int lazy_entry_grow_factor = 150; // percent
@ -200,7 +195,7 @@ namespace libtorrent
return 0; return 0;
} }
size_type lazy_entry::int_value() const boost::int64_t lazy_entry::int_value() const
{ {
TORRENT_ASSERT(m_type == int_t); TORRENT_ASSERT(m_type == int_t);
boost::int64_t val = 0; boost::int64_t val = 0;
@ -325,7 +320,7 @@ namespace libtorrent
return e; return e;
} }
size_type lazy_entry::dict_find_int_value(char const* name, size_type default_val) const boost::int64_t lazy_entry::dict_find_int_value(char const* name, boost::int64_t default_val) const
{ {
lazy_entry const* e = dict_find(name); lazy_entry const* e = dict_find(name);
if (e == 0 || e->type() != lazy_entry::int_t) return default_val; if (e == 0 || e->type() != lazy_entry::int_t) return default_val;
@ -399,7 +394,7 @@ namespace libtorrent
return e->string_pstr(); return e->string_pstr();
} }
size_type lazy_entry::list_int_value_at(int i, size_type default_val) const boost::int64_t lazy_entry::list_int_value_at(int i, boost::int64_t default_val) const
{ {
lazy_entry const* e = list_at(i); lazy_entry const* e = list_at(i);
if (e == 0 || e->type() != lazy_entry::int_t) return default_val; if (e == 0 || e->type() != lazy_entry::int_t) return default_val;
@ -458,7 +453,7 @@ namespace libtorrent
break; break;
case lazy_entry::int_t: case lazy_entry::int_t:
{ {
size_type val = e.int_value(); boost::int64_t val = e.int_value();
while (val > 0) while (val > 0)
{ {
++line_len; ++line_len;