From 29c7048f9336330fa47464e83e85e10becaf16e5 Mon Sep 17 00:00:00 2001 From: lionsoul2014 Date: Sat, 7 Mar 2026 11:28:30 +0800 Subject: [PATCH] optimize the disorder segments check --- maker/golang/xdb/maker.go | 5 +++-- .../java/src/main/java/org/lionsoul/ip2region/xdb/Maker.java | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/maker/golang/xdb/maker.go b/maker/golang/xdb/maker.go index 570edc2..6f0ce7f 100644 --- a/maker/golang/xdb/maker.go +++ b/maker/golang/xdb/maker.go @@ -174,8 +174,9 @@ func (m *Maker) loadSegments() error { } // check the order of the data segment - // if err := seg.RightBehind(last); err != nil { - if err := seg.After(last); err != nil { + if sorting { + // just keep going + } else if err := seg.After(last); err != nil { // return err // @Note: If the continuity is disrupted, // we will sort all these segments later. diff --git a/maker/java/src/main/java/org/lionsoul/ip2region/xdb/Maker.java b/maker/java/src/main/java/org/lionsoul/ip2region/xdb/Maker.java index 350cdc1..18764c2 100644 --- a/maker/java/src/main/java/org/lionsoul/ip2region/xdb/Maker.java +++ b/maker/java/src/main/java/org/lionsoul/ip2region/xdb/Maker.java @@ -179,7 +179,9 @@ public class Maker { throw new Exception("invalid ip segment("+version.name+" expected)"); } - if (last != null && !seg.after(last)) { + if (sorting) { + // just keep going + } else if (last != null && !seg.after(last)) { // throw new Exception("discontinuous data segment: last.eip(" // + Util.ipToString(last.endIP)+")+1 != seg.sip("+ Util.ipToString(seg.startIP) + ", "+ seg.region +")");