summaryrefslogtreecommitdiff
path: root/vendor/github.com/dolthub/maphash/runtime.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2024-06-21 16:35:32 +0000
committerLibravatar GitHub <noreply@github.com>2024-06-21 17:35:32 +0100
commit9143ac6fb4f68f1c79e42f7adc10e68bf7f36e87 (patch)
tree73514f164dd48cfc3f902e6b3f3d2a6db8c6175c /vendor/github.com/dolthub/maphash/runtime.go
parent[chore] update go-structr and go-mangler to no longer rely on modern-go/refle... (diff)
downloadgotosocial-9143ac6fb4f68f1c79e42f7adc10e68bf7f36e87.tar.xz
updates go-mutexes to no longer rely on unsafe linkname (#3027)
Diffstat (limited to 'vendor/github.com/dolthub/maphash/runtime.go')
-rw-r--r--vendor/github.com/dolthub/maphash/runtime.go111
1 files changed, 0 insertions, 111 deletions
diff --git a/vendor/github.com/dolthub/maphash/runtime.go b/vendor/github.com/dolthub/maphash/runtime.go
deleted file mode 100644
index 29cd6a8ed..000000000
--- a/vendor/github.com/dolthub/maphash/runtime.go
+++ /dev/null
@@ -1,111 +0,0 @@
-// Copyright 2022 Dolthub, Inc.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// This file incorporates work covered by the following copyright and
-// permission notice:
-//
-// Copyright 2022 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-//go:build go1.18 || go1.19
-// +build go1.18 go1.19
-
-package maphash
-
-import (
- "math/rand"
- "unsafe"
-)
-
-type hashfn func(unsafe.Pointer, uintptr) uintptr
-
-func getRuntimeHasher[K comparable]() (h hashfn) {
- a := any(make(map[K]struct{}))
- i := (*mapiface)(unsafe.Pointer(&a))
- h = i.typ.hasher
- return
-}
-
-func newHashSeed() uintptr {
- return uintptr(rand.Int())
-}
-
-// noescape hides a pointer from escape analysis. It is the identity function
-// but escape analysis doesn't think the output depends on the input.
-// noescape is inlined and currently compiles down to zero instructions.
-// USE CAREFULLY!
-// This was copied from the runtime (via pkg "strings"); see issues 23382 and 7921.
-//
-//go:nosplit
-//go:nocheckptr
-func noescape(p unsafe.Pointer) unsafe.Pointer {
- x := uintptr(p)
- return unsafe.Pointer(x ^ 0)
-}
-
-type mapiface struct {
- typ *maptype
- val *hmap
-}
-
-// go/src/runtime/type.go
-type maptype struct {
- typ _type
- key *_type
- elem *_type
- bucket *_type
- // function for hashing keys (ptr to key, seed) -> hash
- hasher func(unsafe.Pointer, uintptr) uintptr
- keysize uint8
- elemsize uint8
- bucketsize uint16
- flags uint32
-}
-
-// go/src/runtime/map.go
-type hmap struct {
- count int
- flags uint8
- B uint8
- noverflow uint16
- // hash seed
- hash0 uint32
- buckets unsafe.Pointer
- oldbuckets unsafe.Pointer
- nevacuate uintptr
- // true type is *mapextra
- // but we don't need this data
- extra unsafe.Pointer
-}
-
-// go/src/runtime/type.go
-type tflag uint8
-type nameOff int32
-type typeOff int32
-
-// go/src/runtime/type.go
-type _type struct {
- size uintptr
- ptrdata uintptr
- hash uint32
- tflag tflag
- align uint8
- fieldAlign uint8
- kind uint8
- equal func(unsafe.Pointer, unsafe.Pointer) bool
- gcdata *byte
- str nameOff
- ptrToThis typeOff
-}