mirror of https://github.com/aria2/aria2
2010-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Fixed the bug that util::itos(INT64_MIN) fails. * src/util.cc * src/util.h * test/UtilTest.ccpull/1/head
parent
f0938cf1d6
commit
7637fd76a2
|
@ -1,3 +1,10 @@
|
||||||
|
2010-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
|
Fixed the bug that util::itos(INT64_MIN) fails.
|
||||||
|
* src/util.cc
|
||||||
|
* src/util.h
|
||||||
|
* test/UtilTest.cc
|
||||||
|
|
||||||
2010-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
2010-03-05 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
|
||||||
|
|
||||||
Fixed memory leak in SocketBuffer when _bufq is not empty when
|
Fixed memory leak in SocketBuffer when _bufq is not empty when
|
||||||
|
|
23
src/util.cc
23
src/util.cc
|
@ -139,6 +139,29 @@ std::pair<std::string, std::string> split(const std::string& src, const std::str
|
||||||
return hp;
|
return hp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string itos(int64_t value, bool comma)
|
||||||
|
{
|
||||||
|
bool flag = false;
|
||||||
|
std::string str;
|
||||||
|
if(value < 0) {
|
||||||
|
if(value == INT64_MIN) {
|
||||||
|
if(comma) {
|
||||||
|
str = "-9,223,372,036,854,775,808";
|
||||||
|
} else {
|
||||||
|
str = "-9223372036854775808";
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
flag = true;
|
||||||
|
value = -value;
|
||||||
|
}
|
||||||
|
str = uitos(value, comma);
|
||||||
|
if(flag) {
|
||||||
|
str.insert(str.begin(), '-');
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
int64_t difftv(struct timeval tv1, struct timeval tv2) {
|
int64_t difftv(struct timeval tv1, struct timeval tv2) {
|
||||||
if((tv1.tv_sec < tv2.tv_sec) ||
|
if((tv1.tv_sec < tv2.tv_sec) ||
|
||||||
((tv1.tv_sec == tv2.tv_sec) && (tv1.tv_usec < tv2.tv_usec))) {
|
((tv1.tv_sec == tv2.tv_sec) && (tv1.tv_usec < tv2.tv_usec))) {
|
||||||
|
|
15
src/util.h
15
src/util.h
|
@ -113,20 +113,7 @@ std::string uitos(T value, bool comma = false)
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T>
|
std::string itos(int64_t value, bool comma = false);
|
||||||
std::string itos(T value, bool comma = false)
|
|
||||||
{
|
|
||||||
bool flag = false;
|
|
||||||
if(value < 0) {
|
|
||||||
flag = true;
|
|
||||||
value = -value;
|
|
||||||
}
|
|
||||||
std::string str = uitos(value, comma);
|
|
||||||
if(flag) {
|
|
||||||
str.insert(str.begin(), '-');
|
|
||||||
}
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Computes difference in micro-seconds between tv1 and tv2,
|
* Computes difference in micro-seconds between tv1 and tv2,
|
||||||
|
|
|
@ -775,7 +775,13 @@ void UtilTest::testItos()
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
int64_t i = INT64_MAX;
|
int64_t i = INT64_MAX;
|
||||||
CPPUNIT_ASSERT_EQUAL(std::string("9,223,372,036,854,775,807"), util::itos(i, true));
|
CPPUNIT_ASSERT_EQUAL(std::string("9,223,372,036,854,775,807"),
|
||||||
|
util::itos(i, true));
|
||||||
|
}
|
||||||
|
{
|
||||||
|
int64_t i = INT64_MIN;
|
||||||
|
CPPUNIT_ASSERT_EQUAL(std::string("-9,223,372,036,854,775,808"),
|
||||||
|
util::itos(i, true));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue