Return uintptr instead of unsafe.Pointer.

Force users to import `unsafe` if they want to perform unsafe
operations.


Project: http://git-wip-us.apache.org/repos/asf/lucy/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/81e861c7
Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/81e861c7
Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/81e861c7

Branch: refs/heads/master
Commit: 81e861c727e6b6d2fdaf0eced11bd7e0cc079db1
Parents: e0ad52e
Author: Marvin Humphrey <[email protected]>
Authored: Sat Mar 28 16:59:07 2015 -0700
Committer: Marvin Humphrey <[email protected]>
Committed: Sat Apr 4 17:51:29 2015 -0700

----------------------------------------------------------------------
 go/lucy/analysis.go | 10 +++++-----
 go/lucy/index.go    |  8 +++++---
 go/lucy/plan.go     | 17 ++++++++++-------
 go/lucy/search.go   | 14 +++++++-------
 4 files changed, 27 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/81e861c7/go/lucy/analysis.go
----------------------------------------------------------------------
diff --git a/go/lucy/analysis.go b/go/lucy/analysis.go
index d538a86..679643c 100644
--- a/go/lucy/analysis.go
+++ b/go/lucy/analysis.go
@@ -28,7 +28,7 @@ import 
"git-wip-us.apache.org/repos/asf/lucy-clownfish.git/runtime/go/clownfish"
 
 type Analyzer interface {
        clownfish.Obj
-       ToAnalyzerPtr() unsafe.Pointer
+       ToAnalyzerPtr() uintptr
 }
 
 type EasyAnalyzer struct {
@@ -38,7 +38,7 @@ type EasyAnalyzer struct {
 func NewEasyAnalyzer(language string) *EasyAnalyzer {
        lang := clownfish.NewString(language)
        obj := &EasyAnalyzer{
-               C.lucy_EasyAnalyzer_new((*C.cfish_String)(lang.ToPtr())),
+               
C.lucy_EasyAnalyzer_new((*C.cfish_String)(unsafe.Pointer(lang.ToPtr()))),
        }
        runtime.SetFinalizer(obj, (*EasyAnalyzer).finalize)
        return obj
@@ -49,10 +49,10 @@ func (obj *EasyAnalyzer) finalize() {
        obj.ref = nil
 }
 
-func (obj *EasyAnalyzer) ToPtr() unsafe.Pointer {
-       return unsafe.Pointer(obj.ref)
+func (obj *EasyAnalyzer) ToPtr() uintptr {
+       return uintptr(unsafe.Pointer(obj.ref))
 }
 
-func (obj *EasyAnalyzer) ToAnalyzerPtr() unsafe.Pointer {
+func (obj *EasyAnalyzer) ToAnalyzerPtr() uintptr {
        return obj.ToPtr()
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/81e861c7/go/lucy/index.go
----------------------------------------------------------------------
diff --git a/go/lucy/index.go b/go/lucy/index.go
index f0e0979..7440d8b 100644
--- a/go/lucy/index.go
+++ b/go/lucy/index.go
@@ -75,7 +75,8 @@ func OpenIndexer(args *OpenIndexerArgs) (obj *Indexer, err 
error) {
        }
        err = clownfish.TrapErr(func() {
                obj = &Indexer{
-                       C.lucy_Indexer_new(schemaC, 
(*C.cfish_Obj)(ixLoc.ToPtr()),
+                       C.lucy_Indexer_new(schemaC,
+                               (*C.cfish_Obj)(unsafe.Pointer(ixLoc.ToPtr())),
                                managerC, C.int32_t(flags)),
                        nil,
                }
@@ -124,8 +125,9 @@ func (obj *Indexer) AddDoc(doc interface{}) error {
                value := docValue.Field(i).String()
                fieldC := obj.findFieldC(field)
                valueC := clownfish.NewString(value)
-               C.CFISH_Hash_Store(docFields, (*C.cfish_Obj)(fieldC.ToPtr()),
-                       C.cfish_inc_refcount(valueC.ToPtr()))
+               C.CFISH_Hash_Store(docFields,
+                       (*C.cfish_Obj)(unsafe.Pointer(fieldC.ToPtr())),
+                       C.cfish_inc_refcount(unsafe.Pointer(valueC.ToPtr())))
        }
 
        // TODO create an additional method AddDocWithBoost which allows the

http://git-wip-us.apache.org/repos/asf/lucy/blob/81e861c7/go/lucy/plan.go
----------------------------------------------------------------------
diff --git a/go/lucy/plan.go b/go/lucy/plan.go
index 673f861..dbc9d5f 100644
--- a/go/lucy/plan.go
+++ b/go/lucy/plan.go
@@ -32,7 +32,7 @@ type Schema struct {
 
 type FieldType interface {
        clownfish.Obj
-       ToFieldTypePtr() unsafe.Pointer
+       ToFieldTypePtr() uintptr
 }
 
 type FullTextType struct {
@@ -54,13 +54,16 @@ func (obj *Schema) finalize() {
 
 func (obj *Schema) SpecField(field string, fieldType FieldType) {
        fieldCF := clownfish.NewString(field)
-       C.LUCY_Schema_Spec_Field(obj.ref, (*C.cfish_String)(fieldCF.ToPtr()),
-               (*C.lucy_FieldType)(fieldType.ToFieldTypePtr()))
+       C.LUCY_Schema_Spec_Field(obj.ref,
+               (*C.cfish_String)(unsafe.Pointer(fieldCF.ToPtr())),
+               (*C.lucy_FieldType)(unsafe.Pointer(fieldType.ToFieldTypePtr())))
 }
 
 func NewFullTextType(analyzer Analyzer) *FullTextType {
        obj := &FullTextType{
-               
C.lucy_FullTextType_new((*C.lucy_Analyzer)(analyzer.ToAnalyzerPtr())),
+               C.lucy_FullTextType_new(
+                       
(*C.lucy_Analyzer)(unsafe.Pointer(analyzer.ToAnalyzerPtr())),
+               ),
        }
        runtime.SetFinalizer(obj, (*FullTextType).finalize)
        return obj
@@ -71,10 +74,10 @@ func (obj *FullTextType) finalize() {
        obj.ref = nil
 }
 
-func (obj *FullTextType) ToPtr() unsafe.Pointer {
-       return unsafe.Pointer(obj.ref)
+func (obj *FullTextType) ToPtr() uintptr {
+       return uintptr(unsafe.Pointer(obj.ref))
 }
 
-func (obj *FullTextType) ToFieldTypePtr() unsafe.Pointer {
+func (obj *FullTextType) ToFieldTypePtr() uintptr {
        return obj.ToPtr()
 }

http://git-wip-us.apache.org/repos/asf/lucy/blob/81e861c7/go/lucy/search.go
----------------------------------------------------------------------
diff --git a/go/lucy/search.go b/go/lucy/search.go
index 558ca99..cf3c3e6 100644
--- a/go/lucy/search.go
+++ b/go/lucy/search.go
@@ -37,12 +37,12 @@ import 
"git-wip-us.apache.org/repos/asf/lucy-clownfish.git/runtime/go/clownfish"
 
 type Query interface {
        clownfish.Obj
-       ToQueryPtr() unsafe.Pointer
+       ToQueryPtr() uintptr
 }
 
 type Searcher interface {
        clownfish.Obj
-       ToSearcherPtr() unsafe.Pointer
+       ToSearcherPtr() uintptr
        Hits(query interface{}, offset uint32, numWanted uint32, sortSpec 
*SortSpec) (*Hits, error)
 }
 
@@ -64,7 +64,7 @@ func OpenIndexSearcher(index interface{}) (obj 
*IndexSearcher, err error) {
        switch index.(type) {
        case string:
                ixLoc := clownfish.NewString(index.(string))
-               indexC = (*C.cfish_Obj)(ixLoc.ToPtr())
+               indexC = (*C.cfish_Obj)(unsafe.Pointer(ixLoc.ToPtr()))
        default:
                panic("TODO: support Folder")
        }
@@ -86,11 +86,11 @@ func (obj *IndexSearcher) Close() error {
        })
 }
 
-func (obj *IndexSearcher) ToPtr() unsafe.Pointer {
-       return unsafe.Pointer(obj.ref)
+func (obj *IndexSearcher) ToPtr() uintptr {
+       return uintptr(unsafe.Pointer(obj.ref))
 }
 
-func (obj *IndexSearcher) ToSearcherPtr() unsafe.Pointer {
+func (obj *IndexSearcher) ToSearcherPtr() uintptr {
        return obj.ToPtr()
 }
 
@@ -106,7 +106,7 @@ func (obj *IndexSearcher) Hits(query interface{}, offset 
uint32, numWanted uint3
                queryStringC := clownfish.NewString(query.(string))
                err = clownfish.TrapErr(func() {
                        hitsC = C.LUCY_IxSearcher_Hits(obj.ref,
-                               (*C.cfish_Obj)(queryStringC.ToPtr()),
+                               
(*C.cfish_Obj)(unsafe.Pointer(queryStringC.ToPtr())),
                                C.uint32_t(offset), C.uint32_t(numWanted), 
sortSpecC)
                })
        default:

Reply via email to