From c304fc43333c95467394ca2d6e5eddbbcdf99e3d Mon Sep 17 00:00:00 2001
From: Junegunn Choi <junegunn.c@gmail.com>
Date: Sat, 19 Aug 2017 12:14:48 +0900
Subject: [PATCH] Delay slab allocation

---
 src/algo/algo.go | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/algo/algo.go b/src/algo/algo.go
index e98ff1d8..74c4ad5a 100644
--- a/src/algo/algo.go
+++ b/src/algo/algo.go
@@ -329,6 +329,12 @@ func FuzzyMatchV2(caseSensitive bool, normalize bool, forward bool, input util.C
 		return FuzzyMatchV1(caseSensitive, normalize, forward, input, pattern, withPos, slab)
 	}
 
+	// Phase 1. Optimized search for ASCII string
+	idx := asciiFuzzyIndex(&input, pattern, caseSensitive)
+	if idx < 0 {
+		return Result{-1, -1, 0}, nil
+	}
+
 	// Reuse pre-allocated integer slice to avoid unnecessary sweeping of garbages
 	offset16 := 0
 	offset32 := 0
@@ -339,12 +345,6 @@ func FuzzyMatchV2(caseSensitive bool, normalize bool, forward bool, input util.C
 	// Rune array
 	offset32, T := alloc32(offset32, slab, N, false)
 
-	// Phase 1. Optimized search for ASCII string
-	idx := asciiFuzzyIndex(&input, pattern, caseSensitive)
-	if idx < 0 {
-		return Result{-1, -1, 0}, nil
-	}
-
 	// Phase 2. Calculate bonus for each point
 	pidx, lastIdx, prevClass := 0, 0, charNonWord
 	input.CopyRunes(T)
-- 
GitLab