Skip to content

Code isn't 64-bit clean #11

@ghost

Description

Structs on the Go side use int (which may be 32 or 64 bit depending upon the GOARCH) all over the place when they should use a more specific type.

Eg, in Go ui.Size is defined thusly:

type Size struct {
Width, Height int
}

On the C++ side QSize width and height are also "int", but int in C++ (while this is compiler specific) is generally 32-bits even on 64-bit platforms.

The Go type for Width and Height should be int32, because if it isn't calls that accept an unsafe.Pointer to a ui.Size and expect it to look like a QSize don't even see the height member if linked to a 64-bit build of Qt. This doesn't impact only Size, a lot of Go-side structs in go-ui are similarly mis-declared to use ints in this way.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions