Skip to content

Commit 3db168a

Browse files
authored
Bad address on large iso (#21)
* test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * test wheels * review comments from Erik * tweak regex to match existing release pattern. * handle iso as a value size of 1 * typo in element size
1 parent a062afb commit 3db168a

File tree

1 file changed

+6
-4
lines changed

1 file changed

+6
-4
lines changed

suitesparse_graphblas/io/binary.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -282,20 +282,22 @@ def binwrite(A, filename, comments=None, opener=Path.open):
282282
Ap_size[0] = (nvec[0] + 1) * Isize
283283
Ah_size[0] = nvec[0] * Isize
284284
Ai_size[0] = nvals[0] * Isize
285-
Ax_size[0] = nvals[0] * typesize[0]
285+
Ax_size[0] = typesize[0] if is_iso[0] else nvals[0] * typesize[0]
286286
fwrite(buff(Ap[0], Ap_size[0]))
287287
fwrite(buff(Ah[0], Ah_size[0]))
288288
fwrite(buff(Ai[0], Ai_size[0]))
289289
elif is_sparse:
290290
Ap_size[0] = (nvec[0] + 1) * Isize
291291
Ai_size[0] = nvals[0] * Isize
292-
Ax_size[0] = nvals[0] * typesize[0]
292+
Ax_size[0] = typesize[0] if is_iso[0] else nvals[0] * typesize[0]
293293
fwrite(buff(Ap[0], Ap_size[0]))
294294
fwrite(buff(Ai[0], Ai_size[0]))
295295
elif is_bitmap:
296296
Ab_size[0] = nrows[0] * ncols[0] * ffi.sizeof("int8_t")
297-
Ax_size[0] = nrows[0] * ncols[0] * typesize[0]
297+
Ax_size[0] = typesize[0] if is_iso[0] else nrows[0] * ncols[0] * typesize[0]
298298
fwrite(buff(Ab[0], Ab_size[0]))
299+
else:
300+
Ax_size[0] = typesize[0] if is_iso[0] else nrows[0] * ncols[0] * typesize[0]
299301

300302
fwrite(buff(Ax[0], Ax_size[0]))
301303

@@ -450,7 +452,7 @@ def binread(filename, opener=Path.open):
450452
elif is_full:
451453
Ax_size[0] = nrows[0] * ncols[0] * typesize[0]
452454

453-
Ax[0] = readinto_new_buffer(f, "uint8_t*", Ax_size[0])
455+
Ax[0] = readinto_new_buffer(f, "uint8_t*", typesize[0] if is_iso[0] else Ax_size[0])
454456

455457
A = matrix.new(atype, nrows[0], ncols[0])
456458

0 commit comments

Comments
 (0)