mirror of https://github.com/aria2/aria2
Fixed the bug that causes segmentation fault when unpause RequestGroup
which has resolved BtDependency.pull/1/head
parent
eb6a811279
commit
a21fb350a0
|
@ -76,6 +76,9 @@ void copyValues(const SharedHandle<FileEntry>& d,
|
|||
|
||||
bool BtDependency::resolve()
|
||||
{
|
||||
if(!dependee_) {
|
||||
return true;
|
||||
}
|
||||
if(dependee_->getNumCommand() == 0 && dependee_->downloadFinished()) {
|
||||
SharedHandle<RequestGroup> dependee = dependee_;
|
||||
// cut reference here
|
||||
|
|
|
@ -25,6 +25,7 @@ class BtDependencyTest:public CppUnit::TestFixture {
|
|||
|
||||
CPPUNIT_TEST_SUITE(BtDependencyTest);
|
||||
CPPUNIT_TEST(testResolve);
|
||||
CPPUNIT_TEST(testResolve_nullDependee);
|
||||
CPPUNIT_TEST(testResolve_originalNameNoMatch);
|
||||
CPPUNIT_TEST(testResolve_singleFileWithoutOriginalName);
|
||||
CPPUNIT_TEST(testResolve_multiFile);
|
||||
|
@ -71,6 +72,7 @@ public:
|
|||
}
|
||||
|
||||
void testResolve();
|
||||
void testResolve_nullDependee();
|
||||
void testResolve_originalNameNoMatch();
|
||||
void testResolve_singleFileWithoutOriginalName();
|
||||
void testResolve_multiFile();
|
||||
|
@ -106,6 +108,13 @@ void BtDependencyTest::testResolve()
|
|||
CPPUNIT_ASSERT(firstFileEntry->isRequested());
|
||||
}
|
||||
|
||||
void BtDependencyTest::testResolve_nullDependee()
|
||||
{
|
||||
SharedHandle<RequestGroup> dependant = createDependant(option_);
|
||||
BtDependency dep(dependant.get(), SharedHandle<RequestGroup>());
|
||||
CPPUNIT_ASSERT(dep.resolve());
|
||||
}
|
||||
|
||||
void BtDependencyTest::testResolve_originalNameNoMatch()
|
||||
{
|
||||
std::string filename = A2_TEST_DIR"/single.torrent";
|
||||
|
|
Loading…
Reference in New Issue