mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	* denisenkom/go-mssqldb untagged -> v0.9.0 * github.com/editorconfig/editorconfig-core-go v2.3.7 -> v2.3.8 * github.com/go-testfixtures/testfixtures v3.4.0 -> v3.4.1 * github.com/mholt/archiver v3.3.2 -> v3.5.0 * github.com/olivere/elastic v7.0.20 -> v7.0.21 * github.com/urfave/cli v1.22.4 -> v1.22.5 * github.com/xanzy/go-gitlab v0.38.1 -> v0.39.0 * github.com/yuin/goldmark-meta untagged -> v1.0.0 * github.com/ethantkoenig/rupture 0a76f03a811a -> c3b3b810dc77 * github.com/jaytaylor/html2text 8fb95d837f7d -> 3577fbdbcff7 * github.com/kballard/go-shellquote cd60e84ee657 -> 95032a82bc51 * github.com/msteinert/pam 02ccfbfaf0cc -> 913b8f8cdf8b * github.com/unknwon/paginater 7748a72e0141 -> 042474bd0eae * CI.restart() Co-authored-by: techknowlogick <techknowlogick@gitea.io>
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
// +build !arm64 gccgo appengine
 | 
						|
 | 
						|
package roaring
 | 
						|
 | 
						|
func union2by2(set1 []uint16, set2 []uint16, buffer []uint16) int {
 | 
						|
	pos := 0
 | 
						|
	k1 := 0
 | 
						|
	k2 := 0
 | 
						|
	if 0 == len(set2) {
 | 
						|
		buffer = buffer[:len(set1)]
 | 
						|
		copy(buffer, set1[:])
 | 
						|
		return len(set1)
 | 
						|
	}
 | 
						|
	if 0 == len(set1) {
 | 
						|
		buffer = buffer[:len(set2)]
 | 
						|
		copy(buffer, set2[:])
 | 
						|
		return len(set2)
 | 
						|
	}
 | 
						|
	s1 := set1[k1]
 | 
						|
	s2 := set2[k2]
 | 
						|
	buffer = buffer[:cap(buffer)]
 | 
						|
	for {
 | 
						|
		if s1 < s2 {
 | 
						|
			buffer[pos] = s1
 | 
						|
			pos++
 | 
						|
			k1++
 | 
						|
			if k1 >= len(set1) {
 | 
						|
				copy(buffer[pos:], set2[k2:])
 | 
						|
				pos += len(set2) - k2
 | 
						|
				break
 | 
						|
			}
 | 
						|
			s1 = set1[k1]
 | 
						|
		} else if s1 == s2 {
 | 
						|
			buffer[pos] = s1
 | 
						|
			pos++
 | 
						|
			k1++
 | 
						|
			k2++
 | 
						|
			if k1 >= len(set1) {
 | 
						|
				copy(buffer[pos:], set2[k2:])
 | 
						|
				pos += len(set2) - k2
 | 
						|
				break
 | 
						|
			}
 | 
						|
			if k2 >= len(set2) {
 | 
						|
				copy(buffer[pos:], set1[k1:])
 | 
						|
				pos += len(set1) - k1
 | 
						|
				break
 | 
						|
			}
 | 
						|
			s1 = set1[k1]
 | 
						|
			s2 = set2[k2]
 | 
						|
		} else { // if (set1[k1]>set2[k2])
 | 
						|
			buffer[pos] = s2
 | 
						|
			pos++
 | 
						|
			k2++
 | 
						|
			if k2 >= len(set2) {
 | 
						|
				copy(buffer[pos:], set1[k1:])
 | 
						|
				pos += len(set1) - k1
 | 
						|
				break
 | 
						|
			}
 | 
						|
			s2 = set2[k2]
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return pos
 | 
						|
}
 |