Use struct pointers for Clownfish Go host objects.

Be consistent about passing around Clownfish Go host objects by
reference rather than by value.


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

Branch: refs/heads/master
Commit: a255977090098de619ad298cc5c6fd9f7958ea9a
Parents: 063b499
Author: Marvin Humphrey <[email protected]>
Authored: Wed Nov 12 17:23:34 2014 -0800
Committer: Marvin Humphrey <[email protected]>
Committed: Sun Mar 15 19:01:11 2015 -0700

----------------------------------------------------------------------
 compiler/go/cfc/cfc.go            | 34 +++++++++++++++++-----------------
 runtime/go/clownfish/clownfish.go |  6 +++---
 2 files changed, 20 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/a2559770/compiler/go/cfc/cfc.go
----------------------------------------------------------------------
diff --git a/compiler/go/cfc/cfc.go b/compiler/go/cfc/cfc.go
index fb38bfb..92f0094 100644
--- a/compiler/go/cfc/cfc.go
+++ b/compiler/go/cfc/cfc.go
@@ -79,12 +79,12 @@ type BindC struct {
        ref *C.CFCC
 }
 
-func NewHierarchy(dest string) Hierarchy {
+func NewHierarchy(dest string) *Hierarchy {
        destCString := C.CString(dest)
        defer C.free(unsafe.Pointer(destCString))
-       obj := Hierarchy{C.CFCHierarchy_new(destCString)}
+       obj := &Hierarchy{C.CFCHierarchy_new(destCString)}
        obj.AddIncludeDir(mainIncDir)
-       runtime.SetFinalizer(&obj, (*Hierarchy).RunDecRef)
+       runtime.SetFinalizer(obj, (*Hierarchy).RunDecRef)
        return obj
 }
 
@@ -96,39 +96,39 @@ func (obj *Hierarchy) Build() {
        C.CFCHierarchy_build(obj.ref)
 }
 
-func (obj Hierarchy) AddSourceDir(dir string) {
+func (obj *Hierarchy) AddSourceDir(dir string) {
        dirCString := C.CString(dir)
        defer C.free(unsafe.Pointer(dirCString))
        C.CFCHierarchy_add_source_dir(obj.ref, dirCString)
 }
 
-func (obj Hierarchy) AddIncludeDir(dir string) {
+func (obj *Hierarchy) AddIncludeDir(dir string) {
        dirCString := C.CString(dir)
        defer C.free(unsafe.Pointer(dirCString))
        C.CFCHierarchy_add_include_dir(obj.ref, dirCString)
 }
 
-func (obj Hierarchy) WriteLog() {
+func (obj *Hierarchy) WriteLog() {
        C.CFCHierarchy_write_log(obj.ref)
 }
 
-func NewBindCore(hierarchy Hierarchy, header string, footer string) BindCore {
+func NewBindCore(hierarchy *Hierarchy, header string, footer string) *BindCore 
{
        headerCString := C.CString(header)
        footerCString := C.CString(footer)
        defer C.free(unsafe.Pointer(headerCString))
        defer C.free(unsafe.Pointer(footerCString))
-       obj := BindCore{
+       obj := &BindCore{
                C.CFCBindCore_new(hierarchy.ref, headerCString, footerCString),
        }
-       runtime.SetFinalizer(&obj, (*BindCore).RunDecRef)
+       runtime.SetFinalizer(obj, (*BindCore).RunDecRef)
        return obj
 }
 
-func (obj BindCore) RunDecRef() {
+func (obj *BindCore) RunDecRef() {
        C.CFCBase_decref((*C.CFCBase)(unsafe.Pointer(obj.ref)))
 }
 
-func (obj BindCore) WriteAllModified(modified bool) bool {
+func (obj *BindCore) WriteAllModified(modified bool) bool {
        var mod C.int = 0
        if modified {
                mod = 1
@@ -136,26 +136,26 @@ func (obj BindCore) WriteAllModified(modified bool) bool {
        return C.CFCBindCore_write_all_modified(obj.ref, mod) != 0
 }
 
-func NewBindC(hierarchy Hierarchy, header string, footer string) BindC {
+func NewBindC(hierarchy *Hierarchy, header string, footer string) *BindC {
        headerCString := C.CString(header)
        footerCString := C.CString(footer)
        defer C.free(unsafe.Pointer(headerCString))
        defer C.free(unsafe.Pointer(footerCString))
-       obj := BindC{
+       obj := &BindC{
                C.CFCC_new(hierarchy.ref, headerCString, footerCString),
        }
-       runtime.SetFinalizer(&obj, (*BindC).RunDecRef)
+       runtime.SetFinalizer(obj, (*BindC).RunDecRef)
        return obj
 }
 
-func (obj BindC) RunDecRef() {
+func (obj *BindC) RunDecRef() {
        C.CFCBase_decref((*C.CFCBase)(unsafe.Pointer(obj.ref)))
 }
 
-func (obj BindC) WriteCallbacks() {
+func (obj *BindC) WriteCallbacks() {
        C.CFCC_write_callbacks(obj.ref)
 }
 
-func (obj BindC) WriteHostDefs() {
+func (obj *BindC) WriteHostDefs() {
        C.CFCC_write_hostdefs(obj.ref)
 }

http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/a2559770/runtime/go/clownfish/clownfish.go
----------------------------------------------------------------------
diff --git a/runtime/go/clownfish/clownfish.go 
b/runtime/go/clownfish/clownfish.go
index 0165223..75a3314 100644
--- a/runtime/go/clownfish/clownfish.go
+++ b/runtime/go/clownfish/clownfish.go
@@ -76,13 +76,13 @@ type LockFreeRegistry struct {
        ref *C.cfish_LockFreeRegistry
 }
 
-func NewString(goString string) String {
+func NewString(goString string) *String {
        str := C.CString(goString)
        len := C.size_t(len(goString))
-       obj := String{
+       obj := &String{
                C.cfish_Str_new_steal_utf8(str, len),
        }
-       runtime.SetFinalizer(&obj, (*String).callDecRef)
+       runtime.SetFinalizer(obj, (*String).callDecRef)
        return obj
 }
 

Reply via email to