odb & refdb: make New*BackendFromC take unsafe.Pointer as argument allowing argument to be set from different package
diff --git a/odb.go b/odb.go
index 9c6baa3..9ba2ea2 100644
--- a/odb.go
+++ b/odb.go
@@ -36,8 +36,8 @@
 	return odb, nil
 }
 
-func NewOdbBackendFromC(ptr *C.git_odb_backend) (backend *OdbBackend) {
-	backend = &OdbBackend{ptr}
+func NewOdbBackendFromC(ptr unsafe.Pointer) (backend *OdbBackend) {
+	backend = &OdbBackend{(*C.git_odb_backend)(ptr)}
 	return backend
 }
 
diff --git a/refdb.go b/refdb.go
index 0d1e241..4e3ebf9 100644
--- a/refdb.go
+++ b/refdb.go
@@ -9,6 +9,7 @@
 import "C"
 import (
 	"runtime"
+	"unsafe"
 )
 
 type Refdb struct {
@@ -34,8 +35,8 @@
 	return refdb, nil
 }
 
-func NewRefdbBackendFromC(ptr *C.git_refdb_backend) (backend *RefdbBackend) {
-	backend = &RefdbBackend{ptr}
+func NewRefdbBackendFromC(ptr unsafe.Pointer) (backend *RefdbBackend) {
+	backend = &RefdbBackend{(*C.git_refdb_backend)(ptr)}
 	return backend
 }