From 93930ab80aff6a42773d7e944d7ad8a8365386d9 Mon Sep 17 00:00:00 2001 From: b5f0d6c3 Date: Mon, 2 May 2022 16:15:24 +0800 Subject: update mkvlib:fix bug --- mkvlib/utils.go | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) (limited to 'mkvlib/utils.go') diff --git a/mkvlib/utils.go b/mkvlib/utils.go index 89ba1cd..e6c105c 100644 --- a/mkvlib/utils.go +++ b/mkvlib/utils.go @@ -161,18 +161,6 @@ func copyFileOrDir(src, dst string) error { return copyFolder(src, dst) } -func randomStr(l int) string { - str := "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" - bytes := []byte(str) - var result []byte - lstr := len(str) - 1 - for i := 0; i < l; i++ { - n := randomNumber(0, lstr) - result = append(result, bytes[n]) - } - return string(result) -} - var r = rand.New(rand.NewSource(time.Now().UnixNano())) func randomN(n int) int { @@ -213,3 +201,27 @@ func stringDeduplication(str string) string { } return _s } + +var mRandStrings = make(map[string]bool) + +func randomStr(l int) string { + for { + str := _randomStr(l) + if !mRandStrings[str] { + mRandStrings[str] = true + return str + } + } +} + +func _randomStr(l int) string { + str := "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" + bytes := []byte(str) + var result []byte + lstr := len(str) - 1 + for i := 0; i < l; i++ { + n := randomNumber(0, lstr) + result = append(result, bytes[n]) + } + return string(result) +} -- cgit v1.2.1