[PPL-devel] [GIT] ppl/ppl(sparse_matrices): Unlimited_Sparse_Row: fix combine_needs_second() for backends that define PPL_SPARSE_BACKEND_INVALIDATES_REFERENCES.

Marco Poletti poletti.marco at gmail.com
Thu Apr 8 19:01:19 CEST 2010


Module: ppl/ppl
Branch: sparse_matrices
Commit: ba97824c0307ae2b5534a04ccb0196444f3e400c
URL:    http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=ba97824c0307ae2b5534a04ccb0196444f3e400c

Author: Marco Poletti <poletti.marco at 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();
         }




More information about the PPL-devel mailing list