Switch Go bindings from C32/C64 to CI32/etc.

Change IO methods invoked to use explicitly signed/unsigned versions
rather than casting.


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

Branch: refs/heads/master
Commit: 795626b6c4c6c98cd6f6ac0d0a2899e4b6e09e33
Parents: cbe964d
Author: Marvin Humphrey <[email protected]>
Authored: Tue Apr 19 19:19:28 2016 -0700
Committer: Marvin Humphrey <[email protected]>
Committed: Tue Apr 19 19:20:27 2016 -0700

----------------------------------------------------------------------
 go/build.go           |  8 ++++++
 go/lucy/lucy.go       | 16 +++++------
 go/lucy/store.go      | 66 +++++++++++++++++++++++++++++++++++++++++++++-
 go/lucy/store_test.go | 28 ++++++++++++++------
 4 files changed, 101 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy/blob/795626b6/go/build.go
----------------------------------------------------------------------
diff --git a/go/build.go b/go/build.go
index 8353d66..ecf36f4 100644
--- a/go/build.go
+++ b/go/build.go
@@ -388,7 +388,11 @@ func specClasses(parcel *cfc.Parcel) {
        inStreamBinding.SpecMethod("Read_U32", "ReadU32() (uint32, error)")
        inStreamBinding.SpecMethod("Read_U64", "ReadU64() (uint64, error)")
        inStreamBinding.SpecMethod("Read_C32", "ReadC32() (uint32, error)")
+       inStreamBinding.SpecMethod("Read_CI32", "ReadCI32() (int32, error)")
+       inStreamBinding.SpecMethod("Read_CU32", "ReadCU32() (uint32, error)")
        inStreamBinding.SpecMethod("Read_C64", "ReadC64() (uint64, error)")
+       inStreamBinding.SpecMethod("Read_CI64", "ReadCI64() (int64, error)")
+       inStreamBinding.SpecMethod("Read_CU64", "ReadCU64() (uint64, error)")
        inStreamBinding.SpecMethod("Read_F32", "ReadF32() (float32, error)")
        inStreamBinding.SpecMethod("Read_F64", "ReadF64() (float64, error)")
        inStreamBinding.Register()
@@ -406,7 +410,11 @@ func specClasses(parcel *cfc.Parcel) {
        outStreamBinding.SpecMethod("Write_U32", "WriteU32(uint32) error")
        outStreamBinding.SpecMethod("Write_U64", "WriteU64(uint64) error")
        outStreamBinding.SpecMethod("Write_C32", "WriteC32(uint32) error")
+       outStreamBinding.SpecMethod("Write_CI32", "WriteCI32(int32) error")
+       outStreamBinding.SpecMethod("Write_CU32", "WriteCU32(uint32) error")
        outStreamBinding.SpecMethod("Write_C64", "WriteC64(uint64) error")
+       outStreamBinding.SpecMethod("Write_CI64", "WriteCI64(int64) error")
+       outStreamBinding.SpecMethod("Write_CU64", "WriteCU64(uint64) error")
        outStreamBinding.SpecMethod("Write_F32", "WriteF32(float32) error")
        outStreamBinding.SpecMethod("Write_F64", "WriteF64(float64) error")
        outStreamBinding.SpecMethod("Absorb", "Absorb(InStream) error")

http://git-wip-us.apache.org/repos/asf/lucy/blob/795626b6/go/lucy/lucy.go
----------------------------------------------------------------------
diff --git a/go/lucy/lucy.go b/go/lucy/lucy.go
index 138b599..4a4fc71 100644
--- a/go/lucy/lucy.go
+++ b/go/lucy/lucy.go
@@ -297,7 +297,7 @@ func GOLUCY_Doc_Serialize(d *C.lucy_Doc, outstream 
*C.lucy_OutStream) {
        hash := clownfish.GoToClownfish(fields, unsafe.Pointer(C.CFISH_HASH), 
false)
        defer C.cfish_decref(hash)
        C.lucy_Freezer_serialize_hash((*C.cfish_Hash)(hash), outstream)
-       C.LUCY_OutStream_Write_C32(outstream, C.uint32_t(ivars.doc_id))
+       C.LUCY_OutStream_Write_CI32(outstream, ivars.doc_id)
 }
 
 //export GOLUCY_Doc_Deserialize
@@ -308,7 +308,7 @@ func GOLUCY_Doc_Deserialize(d *C.lucy_Doc, instream 
*C.lucy_InStream) *C.lucy_Do
        fields := clownfish.ToGo(hash)
        fieldsID := registry.store(fields)
        ivars.fields = unsafe.Pointer(fieldsID)
-       ivars.doc_id = C.int32_t(C.LUCY_InStream_Read_C32(instream))
+       ivars.doc_id = C.LUCY_InStream_Read_CI32(instream)
        return d
 }
 
@@ -473,12 +473,12 @@ func doReadDocData(ddrC *C.lucy_DefaultDocReader, docID 
int32, doc interface{})
        C.LUCY_InStream_Seek(ixInstream, C.int64_t(docID*8))
        start := C.LUCY_InStream_Read_U64(ixInstream)
        C.LUCY_InStream_Seek(datInstream, C.int64_t(start))
-       numFields := uint32(C.LUCY_InStream_Read_C32(datInstream))
+       numFields := uint32(C.LUCY_InStream_Read_CU32(datInstream))
 
        // Decode stored data and build up the doc field by field.
        for i := uint32(0); i < numFields; i++ {
                // Read field name.
-               fieldNameLen := C.size_t(C.LUCY_InStream_Read_C32(datInstream))
+               fieldNameLen := C.size_t(C.LUCY_InStream_Read_CU32(datInstream))
                if fieldNameLen > fieldNameCap {
                        fieldNameCap = fieldNameLen
                        fieldName = 
((*C.char)(C.realloc(unsafe.Pointer(fieldName), fieldNameCap+1)))
@@ -497,7 +497,7 @@ func doReadDocData(ddrC *C.lucy_DefaultDocReader, docID 
int32, doc interface{})
                // Read the field value.
                switch C.LUCY_FType_Primitive_ID(fieldType) & 
C.lucy_FType_PRIMITIVE_ID_MASK {
                case C.lucy_FType_TEXT:
-                       valueLen := 
C.size_t(C.LUCY_InStream_Read_C32(datInstream))
+                       valueLen := 
C.size_t(C.LUCY_InStream_Read_CU32(datInstream))
                        buf := ((*C.char)(C.malloc(valueLen + 1)))
                        C.LUCY_InStream_Read_Bytes(datInstream, buf, valueLen)
                        val := C.GoStringN(buf, C.int(valueLen))
@@ -506,7 +506,7 @@ func doReadDocData(ddrC *C.lucy_DefaultDocReader, docID 
int32, doc interface{})
                                return err
                        }
                case C.lucy_FType_BLOB:
-                       valueLen := 
C.size_t(C.LUCY_InStream_Read_C32(datInstream))
+                       valueLen := 
C.size_t(C.LUCY_InStream_Read_CU32(datInstream))
                        buf := ((*C.char)(C.malloc(valueLen)))
                        C.LUCY_InStream_Read_Bytes(datInstream, buf, valueLen)
                        val := C.GoBytes(unsafe.Pointer(buf), C.int(valueLen))
@@ -525,12 +525,12 @@ func doReadDocData(ddrC *C.lucy_DefaultDocReader, docID 
int32, doc interface{})
                                return err
                        }
                case C.lucy_FType_INT32:
-                       err := setField(fields, fieldNameGo, 
int32(C.LUCY_InStream_Read_C32(datInstream)))
+                       err := setField(fields, fieldNameGo, 
int32(C.LUCY_InStream_Read_CI32(datInstream)))
                        if err != nil {
                                return err
                        }
                case C.lucy_FType_INT64:
-                       err := setField(fields, fieldNameGo, 
int64(C.LUCY_InStream_Read_C64(datInstream)))
+                       err := setField(fields, fieldNameGo, 
int64(C.LUCY_InStream_Read_CI64(datInstream)))
                        if err != nil {
                                return err
                        }

http://git-wip-us.apache.org/repos/asf/lucy/blob/795626b6/go/lucy/store.go
----------------------------------------------------------------------
diff --git a/go/lucy/store.go b/go/lucy/store.go
index 7af8229..0b11a2f 100644
--- a/go/lucy/store.go
+++ b/go/lucy/store.go
@@ -95,7 +95,7 @@ func (in *InStreamIMP) ReadString() (string, error) {
        var retval string
        err := clownfish.TrapErr(func() {
                self := (*C.lucy_InStream)(clownfish.Unwrap(in, "in"))
-               size := C.size_t(C.LUCY_InStream_Read_C32(self))
+               size := C.size_t(C.LUCY_InStream_Read_CU32(self))
                buf := (*C.char)(C.malloc(size))
                defer C.free(unsafe.Pointer(buf))
                C.LUCY_InStream_Read_Bytes(self, buf, size)
@@ -180,6 +180,24 @@ func (in *InStreamIMP) ReadC32() (uint32, error) {
        return retval, err
 }
 
+func (in *InStreamIMP) ReadCI32() (int32, error) {
+       var retval int32
+       err := clownfish.TrapErr(func() {
+               self := (*C.lucy_InStream)(clownfish.Unwrap(in, "in"))
+               retval = int32(C.LUCY_InStream_Read_CI32(self))
+       })
+       return retval, err
+}
+
+func (in *InStreamIMP) ReadCU32() (uint32, error) {
+       var retval uint32
+       err := clownfish.TrapErr(func() {
+               self := (*C.lucy_InStream)(clownfish.Unwrap(in, "in"))
+               retval = uint32(C.LUCY_InStream_Read_CU32(self))
+       })
+       return retval, err
+}
+
 func (in *InStreamIMP) ReadC64() (uint64, error) {
        var retval uint64
        err := clownfish.TrapErr(func() {
@@ -189,6 +207,24 @@ func (in *InStreamIMP) ReadC64() (uint64, error) {
        return retval, err
 }
 
+func (in *InStreamIMP) ReadCI64() (int64, error) {
+       var retval int64
+       err := clownfish.TrapErr(func() {
+               self := (*C.lucy_InStream)(clownfish.Unwrap(in, "in"))
+               retval = int64(C.LUCY_InStream_Read_CI64(self))
+       })
+       return retval, err
+}
+
+func (in *InStreamIMP) ReadCU64() (uint64, error) {
+       var retval uint64
+       err := clownfish.TrapErr(func() {
+               self := (*C.lucy_InStream)(clownfish.Unwrap(in, "in"))
+               retval = uint64(C.LUCY_InStream_Read_CU64(self))
+       })
+       return retval, err
+}
+
 func (in *InStreamIMP) ReadF32() (float32, error) {
        var retval float32
        err := clownfish.TrapErr(func() {
@@ -314,6 +350,20 @@ func (out *OutStreamIMP) WriteC32(value uint32) error {
        })
 }
 
+func (out *OutStreamIMP) WriteCI32(value int32) error {
+       return clownfish.TrapErr(func() {
+               self := (*C.lucy_OutStream)(clownfish.Unwrap(out, "out"))
+               C.LUCY_OutStream_Write_CI32(self, C.int32_t(value))
+       })
+}
+
+func (out *OutStreamIMP) WriteCU32(value uint32) error {
+       return clownfish.TrapErr(func() {
+               self := (*C.lucy_OutStream)(clownfish.Unwrap(out, "out"))
+               C.LUCY_OutStream_Write_CU32(self, C.uint32_t(value))
+       })
+}
+
 func (out *OutStreamIMP) WriteC64(value uint64) error {
        return clownfish.TrapErr(func() {
                self := (*C.lucy_OutStream)(clownfish.Unwrap(out, "out"))
@@ -321,6 +371,20 @@ func (out *OutStreamIMP) WriteC64(value uint64) error {
        })
 }
 
+func (out *OutStreamIMP) WriteCI64(value int64) error {
+       return clownfish.TrapErr(func() {
+               self := (*C.lucy_OutStream)(clownfish.Unwrap(out, "out"))
+               C.LUCY_OutStream_Write_CI64(self, C.int64_t(value))
+       })
+}
+
+func (out *OutStreamIMP) WriteCU64(value uint64) error {
+       return clownfish.TrapErr(func() {
+               self := (*C.lucy_OutStream)(clownfish.Unwrap(out, "out"))
+               C.LUCY_OutStream_Write_CU64(self, C.uint64_t(value))
+       })
+}
+
 func (out *OutStreamIMP) WriteF32(value float32) error {
        return clownfish.TrapErr(func() {
                self := (*C.lucy_OutStream)(clownfish.Unwrap(out, "out"))

http://git-wip-us.apache.org/repos/asf/lucy/blob/795626b6/go/lucy/store_test.go
----------------------------------------------------------------------
diff --git a/go/lucy/store_test.go b/go/lucy/store_test.go
index c422525..d87d539 100644
--- a/go/lucy/store_test.go
+++ b/go/lucy/store_test.go
@@ -215,11 +215,17 @@ func TestIOStreamReadWrite(t *testing.T) {
        if err = outStream.WriteU64(42); err != nil {
                t.Errorf("WriteU64: %s", err)
        }
-       if err = outStream.WriteC32(42); err != nil {
-               t.Errorf("WriteC32: %s", err)
+       if err = outStream.WriteCI32(42); err != nil {
+               t.Errorf("WriteCI32: %s", err)
        }
-       if err = outStream.WriteC64(42); err != nil {
-               t.Errorf("WriteC64: %s", err)
+       if err = outStream.WriteCU32(42); err != nil {
+               t.Errorf("WriteCU32: %s", err)
+       }
+       if err = outStream.WriteCI64(42); err != nil {
+               t.Errorf("WriteCI64: %s", err)
+       }
+       if err = outStream.WriteCU64(42); err != nil {
+               t.Errorf("WriteCU64: %s", err)
        }
        if err = outStream.WriteF32(1.5); err != nil {
                t.Errorf("WriteF32: %s", err)
@@ -265,11 +271,17 @@ func TestIOStreamReadWrite(t *testing.T) {
        if got, err := inStream.ReadU64(); got != 42 || err != nil {
                t.Errorf("ReadU64: %d, %s", got, err)
        }
-       if got, err := inStream.ReadC32(); got != 42 || err != nil {
-               t.Errorf("ReadC32: %d, %s", got, err)
+       if got, err := inStream.ReadCI32(); got != 42 || err != nil {
+               t.Errorf("ReadCI32: %d, %s", got, err)
+       }
+       if got, err := inStream.ReadCU32(); got != 42 || err != nil {
+               t.Errorf("ReadCU32: %d, %s", got, err)
+       }
+       if got, err := inStream.ReadCI64(); got != 42 || err != nil {
+               t.Errorf("ReadCI64: %d, %s", got, err)
        }
-       if got, err := inStream.ReadC64(); got != 42 || err != nil {
-               t.Errorf("ReadC64: %d, %s", got, err)
+       if got, err := inStream.ReadCU64(); got != 42 || err != nil {
+               t.Errorf("ReadCU64: %d, %s", got, err)
        }
        if got, err := inStream.ReadF32(); got != 1.5 || err != nil {
                t.Errorf("ReadF32: %d, %s", got, err)

Reply via email to