[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH RFC 46/59] libxl: Reorganize bitmapGotoC
From: George Dunlap <george.dunlap@xxxxxxxxxx> No need to "allocate" the structure elsewhere; passing as a return value makes usage a lot cleaner. Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxx> --- libxl.go | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/libxl.go b/libxl.go index 92064ca..16f4645 100644 --- a/libxl.go +++ b/libxl.go @@ -191,8 +191,8 @@ func bitmapCToGo(cbm *C.libxl_bitmap) (gbm Bitmap) { } // Must be C.libxl_bitmap_dispose'd of afterwards -func bitmapGotoC(gbm Bitmap, cbm *C.libxl_bitmap) { - C.libxl_bitmap_init(cbm) +func bitmapGotoC(gbm Bitmap) (cbm C.libxl_bitmap) { + C.libxl_bitmap_init(&cbm) size := len(gbm.bitmap) cbm._map = (*C.uint8_t)(C.malloc(C.size_t(size))) @@ -206,6 +206,8 @@ func bitmapGotoC(gbm Bitmap, cbm *C.libxl_bitmap) { // And copy the Go array into the C array copy(mapslice, gbm.bitmap) + + return } func (bm *Bitmap) Test(bit int) (bool) { @@ -385,8 +387,7 @@ func (Ctx *Context) CpupoolCreate(Name string, Scheduler Scheduler, Cpumap Bitma var uuid C.libxl_uuid C.libxl_uuid_generate(&uuid) - var cbm C.libxl_bitmap - bitmapGotoC(Cpumap, &cbm) + cbm := bitmapGotoC(Cpumap) defer C.libxl_bitmap_dispose(&cbm) ret := C.libxl_cpupool_create(Ctx.ctx, name, C.libxl_scheduler(Scheduler), @@ -429,8 +430,7 @@ func (Ctx *Context) CpupoolCpuadd(Poolid uint32, Cpu int) (err error) { // int libxl_cpupool_cpuadd_cpumap(libxl_ctx *ctx, uint32_t poolid, // const libxl_bitmap *cpumap); func (Ctx *Context) CpupoolCpuaddCpumap(Poolid uint32, Cpumap Bitmap) (err error) { - var cbm C.libxl_bitmap - bitmapGotoC(Cpumap, &cbm) + cbm := bitmapGotoC(Cpumap) defer C.libxl_bitmap_dispose(&cbm) ret := C.libxl_cpupool_cpuadd_cpumap(Ctx.ctx, C.uint32_t(Poolid), &cbm) @@ -458,8 +458,7 @@ func (Ctx *Context) CpupoolCpuremove(Poolid uint32, Cpu int) (err error) { // int libxl_cpupool_cpuremove_cpumap(libxl_ctx *ctx, uint32_t poolid, // const libxl_bitmap *cpumap); func (Ctx *Context) CpupoolCpuremoveCpumap(Poolid uint32, Cpumap Bitmap) (err error) { - var cbm C.libxl_bitmap - bitmapGotoC(Cpumap, &cbm) + cbm := bitmapGotoC(Cpumap) defer C.libxl_bitmap_dispose(&cbm) ret := C.libxl_cpupool_cpuremove_cpumap(Ctx.ctx, C.uint32_t(Poolid), &cbm) -- 2.7.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |