From 040683b22e43758d229a350af4efe6da95953f4e Mon Sep 17 00:00:00 2001
From: Adam Wardynski <award@.(B-4.4.46a)>
Date: Thu, 13 Jan 2011 12:02:33 +0100
Subject: [PATCH] Small tweaks to Delete and Select code.

---
 libwccl/ops/actions/delete.cpp | 6 ++----
 libwccl/ops/actions/select.cpp | 7 +++----
 2 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/libwccl/ops/actions/delete.cpp b/libwccl/ops/actions/delete.cpp
index e6b8b3e..df2cd22 100644
--- a/libwccl/ops/actions/delete.cpp
+++ b/libwccl/ops/actions/delete.cpp
@@ -1,5 +1,4 @@
 #include <libwccl/ops/actions/delete.h>
-#include <libwccl/ops/functions/constant.h>
 #include <libpwrutils/foreach.h>
 #include <sstream>
 
@@ -8,13 +7,12 @@ namespace Wccl {
 Bool Delete::execute(const ActionExecContext& context) const
 {
 	Bool changed(false);
-	const boost::shared_ptr<const Position> pos = pos_->apply(context);
-	int abs_pos = context.sentence_context().get_abs_position(*pos);
+	int abs_pos = context.sentence_context().get_abs_position(*pos_->apply(context));
 	if (context.sentence_context().is_inside(abs_pos)) {
 		Corpus2::Token& token = *context.sentence_context().at(abs_pos);
 		std::vector<Corpus2::Lexeme> original(token.lexemes());
 		std::vector<Corpus2::Lexeme> remaining;
-		token.lexemes() = remaining;
+		token.lexemes().clear();
 		foreach (const Corpus2::Lexeme& lexeme, original) {
 			token.add_lexeme(lexeme);
 			if (!condition_->apply(context)->get_value()) {
diff --git a/libwccl/ops/actions/select.cpp b/libwccl/ops/actions/select.cpp
index 507e8cd..cd746b2 100644
--- a/libwccl/ops/actions/select.cpp
+++ b/libwccl/ops/actions/select.cpp
@@ -1,5 +1,5 @@
 #include <libwccl/ops/actions/select.h>
-#include <libwccl/ops/functions/constant.h>
+#include <libpwrutils/foreach.h>
 #include <sstream>
 
 namespace Wccl {
@@ -7,13 +7,12 @@ namespace Wccl {
 Bool Select::execute(const ActionExecContext& context) const
 {
 	Bool changed(false);
-	const boost::shared_ptr<const Position> pos = pos_->apply(context);
-	int abs_pos = context.sentence_context().get_abs_position(*pos);
+	int abs_pos = context.sentence_context().get_abs_position(*pos_->apply(context));
 	if (context.sentence_context().is_inside(abs_pos)) {
 		Corpus2::Token& token = *context.sentence_context().at(abs_pos);
 		std::vector<Corpus2::Lexeme> original(token.lexemes());
 		std::vector<Corpus2::Lexeme> remaining;
-		token.lexemes() = remaining;
+		token.lexemes().clear();
 		foreach (const Corpus2::Lexeme& lexeme, original) {
 			token.add_lexeme(lexeme);
 			if (condition_->apply(context)->get_value()) {
-- 
GitLab