From 003bae2c2488ae32027db43e6573a5174794ae03 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Mon, 25 Mar 2024 00:33:55 +0800 Subject: [PATCH] fixed a bug in DataChain.cpp --- src/Type/DataChain.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/Type/DataChain.cpp b/src/Type/DataChain.cpp index 729a5f1..ec60c27 100644 --- a/src/Type/DataChain.cpp +++ b/src/Type/DataChain.cpp @@ -128,7 +128,7 @@ namespace hgl ud_set.Delete(ud); return(true); } - else if(cur->start==ud_end) //接在一起了 + else if(cur->start==ud_end) //接在一起了 { cur->count+=ud->count; cur->start-=ud->count; @@ -137,6 +137,26 @@ namespace hgl ud_set.Delete(ud); return(true); } + else if(cur->start>ud_end) //在前面 + { + ChainNode *new_cn=node_pool.Acquire(); + + new_cn->prev=cur->prev; + new_cn->next=cur; + new_cn->start=ud->start; + new_cn->count=ud->count; + + if(cur->prev) + cur->prev->next=new_cn; + else + start=new_cn; + + cur->prev=new_cn; + + free_count+=ud->count; //空闲数量增加 + ud_set.Delete(ud); + return(true); + } next=cur->next;