
Module: ppl/ppl Branch: master Commit: ec81d249f91bcdeb6fafacf682dedd0219e0c19f URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=ec81d249f91bc...
Author: Enea Zaffanella zaffanella@cs.unipr.it Date: Fri Apr 3 16:09:25 2009 +0200
Fixed a missing initialization bug in Box::concatenate_assign. Also improved methods add_space_dimensions*: instead of adding new uninitialized intervals and later initialize them, we now directly add properly initialized intervals.
---
src/Box.templates.hh | 15 ++++----------- 1 files changed, 4 insertions(+), 11 deletions(-)
diff --git a/src/Box.templates.hh b/src/Box.templates.hh index 51578f4..fa27d0d 100644 --- a/src/Box.templates.hh +++ b/src/Box.templates.hh @@ -505,12 +505,9 @@ Box<ITV>::add_space_dimensions_and_embed(const dimension_type m) { // Adding no dimensions is a no-op. if (m == 0) return; - // To embed an n-dimension space box in a (n+m)-dimension space, // we just add `m' new universe elements to the sequence. - seq.insert(seq.end(), m, ITV()); - for (dimension_type sz = seq.size(), i = sz - m; i < sz; ++i) - seq[i].assign(UNIVERSE); + seq.insert(seq.end(), m, ITV(UNIVERSE)); assert(OK()); }
@@ -520,12 +517,8 @@ Box<ITV>::add_space_dimensions_and_project(const dimension_type m) { // Adding no dimensions is a no-op. if (m == 0) return; - - // A add `m' new zero elements to the sequence. - seq.insert(seq.end(), m, ITV()); - for (dimension_type sz = seq.size(), i = sz - m; i < sz; ++i) - seq[i].assign(0); - + // Add `m' new zero elements to the sequence. + seq.insert(seq.end(), m, ITV(0)); assert(OK()); }
@@ -1491,7 +1484,7 @@ Box<ITV>::concatenate_assign(const Box& y) { // If `x' is marked empty, then it is sufficient to adjust // the dimension of the vector space. if (x.marked_empty()) { - x.seq.insert(x.seq.end(), y_space_dim, ITV()); + x.seq.insert(x.seq.end(), y_space_dim, ITV(EMPTY)); assert(x.OK()); return; }