From 83aaf7e1bc7525bd97a64c345041f6b5173ddbbc Mon Sep 17 00:00:00 2001
From: Adam Wardynski <award@.(win7-laptop)>
Date: Thu, 5 May 2011 13:51:06 +0200
Subject: [PATCH] Clear heads for unmark operators in tag and match rules.

---
 libwccl/ops/match/actions/unmarkmatch.cpp | 1 +
 libwccl/ops/tagactions/unmark.cpp         | 1 +
 2 files changed, 2 insertions(+)

diff --git a/libwccl/ops/match/actions/unmarkmatch.cpp b/libwccl/ops/match/actions/unmarkmatch.cpp
index f1ac2a9..863bb0e 100644
--- a/libwccl/ops/match/actions/unmarkmatch.cpp
+++ b/libwccl/ops/match/actions/unmarkmatch.cpp
@@ -33,6 +33,7 @@ void UnmarkMatch::execute(const ActionExecContext& context) const
 	for (int i = 0; i < channel.size(); ++i) {
 		if (channel.segments()[i] == segment_idx) {
 			channel.set_segment_at(i, 0);
+			channel.set_head_at(i, false);
 		}
 	}
 }
diff --git a/libwccl/ops/tagactions/unmark.cpp b/libwccl/ops/tagactions/unmark.cpp
index e090cbc..5de0fa6 100644
--- a/libwccl/ops/tagactions/unmark.cpp
+++ b/libwccl/ops/tagactions/unmark.cpp
@@ -37,6 +37,7 @@ Bool Unmark::execute(const ActionExecContext& context) const
 	for (int i = 0; i < channel.size(); ++i) {
 		if (channel.segments()[i] == segment_idx) {
 			channel.set_segment_at(i, 0);
+			channel.set_head_at(i, false);
 		}
 	}
 	return Bool(true);
-- 
GitLab