summaryrefslogtreecommitdiff
path: root/src/dl
diff options
context:
space:
mode:
authorLuke Shumaker <lukeshu@sbcglobal.net>2015-10-26 16:10:50 -0400
committerLuke Shumaker <lukeshu@sbcglobal.net>2015-10-26 16:10:50 -0400
commit5b2b2f445d3ba4688e94ecb80c56c7940024e776 (patch)
tree8fcb798c853c0462c0a4341f59c9ab12cfcb2a0b /src/dl
parent1feeb6545993f8032be57129a08eae5c5826a215 (diff)
dlfcn: return raw unsafe.Pointer
Diffstat (limited to 'src/dl')
-rw-r--r--src/dl/dlfcn.go12
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