From 9a08b2758e86effcb70b92a31548d8368c95a7e6 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Mon, 26 Oct 2015 16:10:50 -0400 Subject: dlfcn: return raw unsafe.Pointer --- dl/dlfcn.go | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/dl/dlfcn.go b/dl/dlfcn.go index f182cfe..eb40794 100644 --- a/dl/dlfcn.go +++ b/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 -- cgit v1.2.3