mirror of
https://github.com/status-im/status-go.git
synced 2025-01-09 14:16:21 +00:00
511d6bfc54
* feat(share-links): Add protobuf and encode/decode url data methods * feat(new-links-format): Adds generators for new links format * feat: add parsing for new links format * feat: add messenger-level pubkey serialization and tests * feat: fix and test CreateCommunityURLWithChatKey * feat: impl and test parseCommunityURLWithChatKey * feat: fix and test CreateCommunityURLWithData * feat: impl and test parseCommunityURLWithData (not working) * feat: UrlDataResponse as response share urls api * feat: impl& tested ShareCommunityChannelURLWithChatKey * feat: impl & tested ParseCommunityChannelURLWithChatKey * fix: bring urls to new format * feat: add regexp for community channel urls * feat: impl & test contact urls with chatKey, Ens and data * fix: encodeDataURL/encodeDataURL patch from Samyoul * fix: fix unmarshalling protobufs * fix: fix minor issues, temporary comment TestParseUserURLWithENS * fix: allow url to contain extra `#` in the signature * fix: check signatures with SigToPub * chore: lint fixes * fix: encode the signature * feat: Check provided channelID is Uuid * fix(share-community-url): Remove if community encrypted scope * fix: review fixes * fix: use proto.Unmarshal instead of json.Marshal * feat(share-urls): Adds TagsIndices to community data * feat: support tag indices to community url data --------- Co-authored-by: Boris Melnik <borismelnik@status.im>
67 lines
1.1 KiB
Go
67 lines
1.1 KiB
Go
package brotli
|
|
|
|
/* Copyright 2016 Google Inc. All Rights Reserved.
|
|
|
|
Distributed under MIT license.
|
|
See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
/*
|
|
Dynamically grows array capacity to at least the requested size
|
|
T: data type
|
|
A: array
|
|
C: capacity
|
|
R: requested size
|
|
*/
|
|
func brotli_ensure_capacity_uint8_t(a *[]byte, c *uint, r uint) {
|
|
if *c < r {
|
|
var new_size uint = *c
|
|
if new_size == 0 {
|
|
new_size = r
|
|
}
|
|
|
|
for new_size < r {
|
|
new_size *= 2
|
|
}
|
|
|
|
if cap(*a) < int(new_size) {
|
|
var new_array []byte = make([]byte, new_size)
|
|
if *c != 0 {
|
|
copy(new_array, (*a)[:*c])
|
|
}
|
|
|
|
*a = new_array
|
|
} else {
|
|
*a = (*a)[:new_size]
|
|
}
|
|
|
|
*c = new_size
|
|
}
|
|
}
|
|
|
|
func brotli_ensure_capacity_uint32_t(a *[]uint32, c *uint, r uint) {
|
|
var new_array []uint32
|
|
if *c < r {
|
|
var new_size uint = *c
|
|
if new_size == 0 {
|
|
new_size = r
|
|
}
|
|
|
|
for new_size < r {
|
|
new_size *= 2
|
|
}
|
|
|
|
if cap(*a) < int(new_size) {
|
|
new_array = make([]uint32, new_size)
|
|
if *c != 0 {
|
|
copy(new_array, (*a)[:*c])
|
|
}
|
|
|
|
*a = new_array
|
|
} else {
|
|
*a = (*a)[:new_size]
|
|
}
|
|
*c = new_size
|
|
}
|
|
}
|