mirror of
https://github.com/imgproxy/imgproxy.git
synced 2025-10-10 04:02:29 +02:00
Use sync.Map for cached C strings
This commit is contained in:
@@ -1,16 +1,17 @@
|
||||
package vips
|
||||
|
||||
import "C"
|
||||
import "sync"
|
||||
|
||||
var cStringsCache = make(map[string]*C.char)
|
||||
var cStringsCache sync.Map
|
||||
|
||||
func cachedCString(str string) *C.char {
|
||||
if cstr, ok := cStringsCache[str]; ok {
|
||||
return cstr
|
||||
if cstr, ok := cStringsCache.Load(str); ok {
|
||||
return cstr.(*C.char)
|
||||
}
|
||||
|
||||
cstr := C.CString(str)
|
||||
cStringsCache[str] = cstr
|
||||
cStringsCache.Store(str, cstr)
|
||||
|
||||
return cstr
|
||||
}
|
||||
|
Reference in New Issue
Block a user