From f96ec1098444027b6036cca5da008a5e8efea817 Mon Sep 17 00:00:00 2001
From: ilor <kailoran@gmail.com>
Date: Wed, 8 Dec 2010 11:42:04 +0100
Subject: [PATCH] Fix iteration operators checking the shared pointer validity
 instead of the actual returned value

---
 libwccl/ops/functions/bool/iterations/atleast.cpp   | 2 +-
 libwccl/ops/functions/bool/iterations/leftlook.cpp  | 2 +-
 libwccl/ops/functions/bool/iterations/only.cpp      | 2 +-
 libwccl/ops/functions/bool/iterations/rightlook.cpp | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/libwccl/ops/functions/bool/iterations/atleast.cpp b/libwccl/ops/functions/bool/iterations/atleast.cpp
index 0cadc0e..ea3d7c9 100644
--- a/libwccl/ops/functions/bool/iterations/atleast.cpp
+++ b/libwccl/ops/functions/bool/iterations/atleast.cpp
@@ -12,7 +12,7 @@ bool AtLeast::iterate(
 	int left_to_match = min_matches_;
 	for(int i = left; i <= right; ++i) {
 		p.set_value(i);
-		if(evaluating_expr_->apply(context)) {
+		if(evaluating_expr_->apply(context)->get_value()) {
 			if(--left_to_match == 0) {
 				return true;
 			}
diff --git a/libwccl/ops/functions/bool/iterations/leftlook.cpp b/libwccl/ops/functions/bool/iterations/leftlook.cpp
index 5439bec..57cd4a8 100644
--- a/libwccl/ops/functions/bool/iterations/leftlook.cpp
+++ b/libwccl/ops/functions/bool/iterations/leftlook.cpp
@@ -10,7 +10,7 @@ bool LeftLook::iterate(
 {
 	for(int i = left; i <= right; ++i) {
 		p.set_value(i);
-		if(evaluating_expr_->apply(context)) {
+		if(evaluating_expr_->apply(context)->get_value()) {
 			return true;
 		}
 	}
diff --git a/libwccl/ops/functions/bool/iterations/only.cpp b/libwccl/ops/functions/bool/iterations/only.cpp
index 291d25f..32d9f16 100644
--- a/libwccl/ops/functions/bool/iterations/only.cpp
+++ b/libwccl/ops/functions/bool/iterations/only.cpp
@@ -10,7 +10,7 @@ bool Only::iterate(
 {
 	for(int i = left; i <= right; ++i) {
 		p.set_value(i);
-		if(!evaluating_expr_->apply(context)) {
+		if(!evaluating_expr_->apply(context)->get_value()) {
 			return false;
 		}
 	}
diff --git a/libwccl/ops/functions/bool/iterations/rightlook.cpp b/libwccl/ops/functions/bool/iterations/rightlook.cpp
index 613c622..36bae48 100644
--- a/libwccl/ops/functions/bool/iterations/rightlook.cpp
+++ b/libwccl/ops/functions/bool/iterations/rightlook.cpp
@@ -10,7 +10,7 @@ bool RightLook::iterate(
 {
 	for(int i = right; i >= left; --i) {
 		p.set_value(i);
-		if(evaluating_expr_->apply(context)) {
+		if(evaluating_expr_->apply(context)->get_value()) {
 			return true;
 		}
 	}
-- 
GitLab