
Module: ppl/ppl Branch: sparse_matrices Commit: ba97824c0307ae2b5534a04ccb0196444f3e400c URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=ba97824c0307a...
Author: Marco Poletti poletti.marco@gmail.com Date: Thu Apr 8 19:00:01 2010 +0200
Unlimited_Sparse_Row: fix combine_needs_second() for backends that define PPL_SPARSE_BACKEND_INVALIDATES_REFERENCES.
---
src/Unlimited_Sparse_Row.templates.hh | 30 ++++++++++++------------------ 1 files changed, 12 insertions(+), 18 deletions(-)
diff --git a/src/Unlimited_Sparse_Row.templates.hh b/src/Unlimited_Sparse_Row.templates.hh index d990c55..8f15962 100644 --- a/src/Unlimited_Sparse_Row.templates.hh +++ b/src/Unlimited_Sparse_Row.templates.hh @@ -104,9 +104,8 @@ Unlimited_Sparse_Row::combine_needs_second(const Unlimited_Sparse_Row& y, #ifdef PPL_SPARSE_BACKEND_INVALIDATES_REFERENCES i = last_i; ++i; - i_end = x.end(); - if (& static_cast<PIP_Tree_Node:: - matrix_row_const_reference_type>(x) == &y) { + i_end = end(); + if (this == &y) { j = last_i; j_end = y.end(); } @@ -124,9 +123,8 @@ Unlimited_Sparse_Row::combine_needs_second(const Unlimited_Sparse_Row& y, #ifdef PPL_SPARSE_BACKEND_INVALIDATES_REFERENCES i = last_i; ++i; - i_end = x.end(); - if (& static_cast<PIP_Tree_Node:: - matrix_row_const_reference_type>(x) == &y) { + i_end = end(); + if (this == &y) { j = last_i; j_end = y.end(); } @@ -156,9 +154,8 @@ Unlimited_Sparse_Row::combine_needs_second(const Unlimited_Sparse_Row& y, #ifdef PPL_SPARSE_BACKEND_INVALIDATES_REFERENCES i = last_i; ++i; - i_end = x.end(); - if (& static_cast<PIP_Tree_Node:: - matrix_row_const_reference_type>(x) == &y) { + i_end = end(); + if (this == &y) { j = last_i; j_end = y.end(); } @@ -272,9 +269,8 @@ Unlimited_Sparse_Row::combine(const Unlimited_Sparse_Row& y, const Func1& f, #ifdef PPL_SPARSE_BACKEND_INVALIDATES_REFERENCES i = last_i; ++i; - i_end = x.end(); - if (& static_cast<PIP_Tree_Node:: - matrix_row_const_reference_type>(x) == &y) { + i_end = end(); + if (this == &y) { j = last_i; j_end = y.end(); } @@ -293,9 +289,8 @@ Unlimited_Sparse_Row::combine(const Unlimited_Sparse_Row& y, const Func1& f, #ifdef PPL_SPARSE_BACKEND_INVALIDATES_REFERENCES i = last_i; ++i; - i_end = x.end(); - if (& static_cast<PIP_Tree_Node:: - matrix_row_const_reference_type>(x) == &y) { + i_end = end(); + if (this == &y) { j = last_i; j_end = y.end(); } @@ -326,9 +321,8 @@ Unlimited_Sparse_Row::combine(const Unlimited_Sparse_Row& y, const Func1& f, #ifdef PPL_SPARSE_BACKEND_INVALIDATES_REFERENCES i = last_i; ++i; - i_end = x.end(); - if (& static_cast<PIP_Tree_Node:: - matrix_row_const_reference_type>(x) == &y) { + i_end = end(); + if (this == &y) { j = last_i; j_end = y.end(); }