Преглед на файлове

More optimal byte reversing

tags/0.9
9seconds преди 7 години
родител
ревизия
7b43766a08
променени са 1 файла, в които са добавени 7 реда и са изтрити 3 реда
  1. 7
    3
      mtproto/wrappers/crypt.go

+ 7
- 3
mtproto/wrappers/crypt.go Целия файл

95
 }
95
 }
96
 
96
 
97
 func reverseBytes(data []byte) []byte {
97
 func reverseBytes(data []byte) []byte {
98
-	rv := make([]byte, len(data))
99
-	for k, v := range data {
100
-		rv[len(data)-1-k] = v
98
+	dataLen := len(data)
99
+	rv := make([]byte, dataLen)
100
+
101
+	rv[dataLen/2] = data[dataLen/2]
102
+	for i := dataLen/2 - 1; i >= 0; i-- {
103
+		opp := dataLen - i - 1
104
+		rv[i], rv[opp] = data[opp], data[i]
101
 	}
105
 	}
102
 
106
 
103
 	return rv
107
 	return rv

Loading…
Отказ
Запис