diff options
| author | Asbjørn Sloth Tønnesen <ast@fiberby.net> | 2017-03-06 10:28:42 +0000 | 
|---|---|---|
| committer | Asbjørn Sloth Tønnesen <ast@2e8.dk> | 2017-03-06 10:28:42 +0000 | 
| commit | ff01073eeee92bf633a15c625d85d940a2e0da52 (patch) | |
| tree | 4a03fbc89b7328408b675c6a91de083b5fb4a36a | |
| parent | 6799183a66dd850f53ef66af123c82f86abd7602 (diff) | |
| download | lua-inet-ff01073eeee92bf633a15c625d85d940a2e0da52.tar.gz lua-inet-ff01073eeee92bf633a15c625d85d940a2e0da52.tar.xz lua-inet-ff01073eeee92bf633a15c625d85d940a2e0da52.zip | |
set: aggregate: also dedup
Signed-off-by: Asbjørn Sloth Tønnesen <ast@fiberby.net>
| -rw-r--r-- | lua/inet/set.lua | 16 | 
1 files changed, 11 insertions, 5 deletions
| diff --git a/lua/inet/set.lua b/lua/inet/set.lua index effb0f2..27c9388 100644 --- a/lua/inet/set.lua +++ b/lua/inet/set.lua @@ -33,11 +33,17 @@ function M.aggregate(t)  			if ia then  				local ib = ia:flip() -- counterpart  				for j=1,n do -					if j ~= i and t[j] == ib then -						-- counterpart found, aggregating -						t[i] = (ia ^ -1):network() -						t[j] = nil -						flag = true +					if j ~= i then +						if ia == t[j] then +							-- duplicate found +							t[j] = nil +							flag = true +						elseif t[j] == ib then +							-- counterpart found, aggregating +							t[i] = (ia ^ -1):network() +							t[j] = nil +							flag = true +						end  					end  				end  			end | 
