Skip to content

Commit b177d52

Browse files
author
Christian Schulte
committed
Fixed crashes with portfolios
git-svn-id: svn+ssh://svn.gecode.org/srv/gecode/svn/gecode/trunk@15620 64335634-5103-0410-b293-fc3d331e086d
1 parent 589d2d4 commit b177d52

File tree

4 files changed

+12
-4
lines changed

4 files changed

+12
-4
lines changed

changelog.in

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,14 @@ Date: ???
7272
[DESCRIPTION]
7373
Minor release.
7474

75+
[ENTRY]
76+
Module: search
77+
What: bug
78+
Rank: major
79+
[DESCRIPTION]
80+
Fixed crashes in sequential and parallel portfolios using
81+
parallel or restart-based best solution search engines as assets.
82+
7583
[ENTRY]
7684
Module: kernel
7785
What: new

gecode/search/meta/rbs.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ namespace Gecode { namespace Search { namespace Meta {
9090
// The engine found a solution
9191
restart = true;
9292
delete last;
93-
last = n->clone();
93+
last = n->clone(shared_data);
9494
return n;
9595
} else if ( (!complete && !e->stopped()) ||
9696
(e->stopped() && stop->enginestopped()) ) {
@@ -135,7 +135,7 @@ namespace Gecode { namespace Search { namespace Meta {
135135
return;
136136
}
137137
}
138-
last = b.clone();
138+
last = b.clone(shared_data);
139139
master->constrain(b);
140140
e->constrain(b);
141141
}

gecode/search/parallel/bab.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ namespace Gecode { namespace Search { namespace Parallel {
6565
}
6666
delete best;
6767
}
68-
best = b.clone();
68+
best = b.clone(false);
6969
// Announce better solutions
7070
for (unsigned int i=0; i<workers(); i++)
7171
worker(i)->better(best);

test/search.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -784,7 +784,7 @@ namespace Test {
784784
}
785785
// Portfolio-based search using SEBs
786786
for (unsigned int mt=1; mt<=3; mt += 2)
787-
for (unsigned int st=1; st<=2; st++) {
787+
for (unsigned int st=1; st<=8; st++) {
788788
(void) new SEBPBS<HasSolutions>("BAB",true,mt,st);
789789
(void) new SEBPBS<FailImmediate>("BAB",true,mt,st);
790790
(void) new SEBPBS<SolveImmediate>("BAB",true,mt,st);

0 commit comments

Comments
 (0)