Skip to content

Commit f3f4bde

Browse files
authored
Merge pull request #1 from RoEdAl/arm-32bit
Fix: compile module on 32-bit architectures
2 parents ddd30f8 + 64615c2 commit f3f4bde

File tree

4 files changed

+15
-3
lines changed

4 files changed

+15
-3
lines changed

cairo/cairo.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ func (pi *PathIter) Next() *PathSegment {
107107
}
108108
// path.data is an array of cairo_path_data_t, but the union makes
109109
// things complicated.
110-
dataArray := (*[1 << 30]C.cairo_path_data_t)(unsafe.Pointer(pi.path.Ptr.data))
110+
dataArray := unsafe.Slice((*C.cairo_path_data_t)(unsafe.Pointer(pi.path.Ptr.data)), pi.path.Ptr.num_data)
111111
seg, ofs := decodePathSegment(unsafe.Pointer(&dataArray[pi.i]))
112112
pi.i += C.int(ofs)
113113
return seg
@@ -3651,7 +3651,7 @@ func SVGGetVersions() []SVGVersion {
36513651
var cVersionsPtr *C.cairo_svg_version_t
36523652
var cNumVersions C.int
36533653
C.cairo_svg_get_versions(&cVersionsPtr, &cNumVersions)
3654-
slice := (*[1 << 30]C.cairo_svg_version_t)(unsafe.Pointer(cVersionsPtr))[:cNumVersions:cNumVersions]
3654+
slice := unsafe.Slice((*C.cairo_svg_version_t)(unsafe.Pointer(cVersionsPtr)), cNumVersions)
36553655
versions := make([]SVGVersion, cNumVersions)
36563656
for i := 0; i < int(cNumVersions); i++ {
36573657
versions[i] = SVGVersion(slice[i])

cairo/path.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ type pathDataHeader struct {
3636
// decodePathSegment extracts a series of points out of a cairo_path_data_t array.
3737
func decodePathSegment(pathData unsafe.Pointer) (*PathSegment, int) {
3838
header := (*pathDataHeader)(pathData)
39+
parts := unsafe.Slice((*PathPoint)(pathData), header.length)
3940
seg := PathSegment{
4041
Type: PathDataType(header.dataType),
4142
Points: make([]PathPoint, header.length-1),
4243
}
43-
parts := (*[1 << 30]PathPoint)(pathData)
4444
copy(seg.Points, parts[1:])
4545
return &seg, int(header.length)
4646
}

go.mod

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
module github.com/go-graphite/gocairo
2+
3+
go 1.17
4+
5+
require (
6+
github.com/martine/gocairo v0.0.0-20160222165215-ddd30f837497
7+
rsc.io/c2go v0.0.0-20170620140410-520c22818a08
8+
)

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
github.com/martine/gocairo v0.0.0-20160222165215-ddd30f837497 h1:YokNfnvsFBP4Fw6OdIWsmUQfyQFCR8J9f7FweVa6sgQ=
2+
github.com/martine/gocairo v0.0.0-20160222165215-ddd30f837497/go.mod h1:iLyMWuHlSRKkfS1vzV+wQNDFVOfQZYkrAAdNS7FPb4w=
3+
rsc.io/c2go v0.0.0-20170620140410-520c22818a08 h1:AAIN5uzUq20OU2cNoPTVljUm7JDaD0Z/+Xl/uMBHJgU=
4+
rsc.io/c2go v0.0.0-20170620140410-520c22818a08/go.mod h1:hE73EMCiJ3lIDPgEDEK781LZrVhFDxT+I+ziQRoLVNE=

0 commit comments

Comments
 (0)