|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] golang/xenlight: Add libxl_utils support
> On Jun 28, 2019, at 5:32 PM, George Dunlap <george.dunlap@xxxxxxxxxx> wrote:
>
> On 6/28/19 9:25 AM, Nicolas Belouin wrote:
>> The Go bindings for libxl miss functions from libxl_utils, let's start
>> with the simple libxl_domid_to_name and its counterpart
>> libxl_name_to_domid.
>>
>> Signed-off-by: Nicolas Belouin <nicolas.belouin@xxxxxxxxx>
>
> Just for future reference, below your SoB, it's good practice to put a
> `---` line (below which everything will be ignored), and a list of the
> changes you made. E.g,:
>
> Signed-off-by: Nicolas Belouin <nicolas.belouin@xxxxxxxxx>
> ---
> v2:
> - Don't leak C string returned by libxl_domid_to_name
>
> One more thing...
>
>> +//char* libxl_domid_to_name(libxl_ctx *ctx, uint32_t domid);
>> +func (Ctx *Context) DomidToName(id Domid) (name string) {
>> + cDomName := C.libxl_domid_to_name(Ctx.ctx, C.uint32_t(id))
>> + defer C.free(unsafe.Pointer(cDomName))
>> +
>> + name = C.GoString(cDomName)
>
> libxl_domid_to_name() returns NULL if domid doesn't exist. Will this
> code DTRT (returning 'nil' in that case)? Or will it crash / do
> something else?
>
> I couldn't actually find the answer in a quick search for the
> documentation. Any chance you could build a test program to see what
> happens?
>
> Alternately, we could play it safe and always check cDomName for `nil`
> before passing it to C.GoString().
I just asked, and it turns out if C.GoString() is passed a nil pointer, it
returns the empty string (“”), which is what we want. It’s not documented yet,
but there’s a ticket to document it soon.
https://github.com/golang/go/issues/32734
So this is ready to go in:
Reviewed-by: George Dunlap <george.dunlap@xxxxxxxxxx>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |