diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2015-10-26 16:10:50 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2015-10-26 16:10:50 -0400 |
commit | 5b2b2f445d3ba4688e94ecb80c56c7940024e776 (patch) | |
tree | 8fcb798c853c0462c0a4341f59c9ab12cfcb2a0b /src/dl | |
parent | 1feeb6545993f8032be57129a08eae5c5826a215 (diff) |
dlfcn: return raw unsafe.Pointer
Diffstat (limited to 'src/dl')
-rw-r--r-- | src/dl/dlfcn.go | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/dl/dlfcn.go b/src/dl/dlfcn.go index f182cfe..eb40794 100644 --- a/src/dl/dlfcn.go +++ b/src/dl/dlfcn.go @@ -82,16 +82,12 @@ func Open(name string, flags Flag) (*Handle, error) { } // Look up a symbol, and return a pointer to it. -// -// This returns uintptr instead of unsafe.Pointer so that code using -// dl cannot obtain unsafe.Pointers without importing the unsafe -// package explicitly. -func (h *Handle) Sym(symbol string) (uintptr, error) { +func (h *Handle) Sym(symbol string) (unsafe.Pointer, error) { h.l.RLock() defer h.l.RUnlock() if h.o == 0 { - return 0, HandleClosedError + return nil, HandleClosedError } symbolC := C.CString(symbol) @@ -100,9 +96,9 @@ func (h *Handle) Sym(symbol string) (uintptr, error) { dlerror() ptr := C.dlsym(h.c, symbolC) if ptr == nil { - return 0, dlerror() + return nil, dlerror() } - return uintptr(ptr), nil + return ptr, nil } // Close this handle on a shared object; decrementint the reference |