cached_c_strings.go 255 B

1234567891011121314151617
  1. package vips
  2. import "C"
  3. import "sync"
  4. var cStringsCache sync.Map
  5. func cachedCString(str string) *C.char {
  6. if cstr, ok := cStringsCache.Load(str); ok {
  7. return cstr.(*C.char)
  8. }
  9. cstr := C.CString(str)
  10. cStringsCache.Store(str, cstr)
  11. return cstr
  12. }