From a8c8b8dc1f1845f24632431ccc197f166a916115 Mon Sep 17 00:00:00 2001 From: Adam Paszke Date: Mon, 18 Apr 2016 18:50:11 +0200 Subject: Fix pointer overflows in sharedserialize --- sharedserialize.lua | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/sharedserialize.lua b/sharedserialize.lua index 6e09a90..9cd8ebf 100644 --- a/sharedserialize.lua +++ b/sharedserialize.lua @@ -27,13 +27,22 @@ if tds then -- vec local mt = {} function mt.__factory(f) - local self = f:readLong() + local self + if ffi.sizeof('long') == 4 then + self = f:readDouble() + else + self = f:readLong() + end self = ffi.cast('tds_vec&', self) ffi.gc(self, tds.C.tds_vec_free) return self end function mt.__write(self, f) - f:writeLong(torch.pointer(self)) + if ffi.sizeof('long') == 4 then + f:writeDouble(torch.pointer(self)) + else + f:writeLong(torch.pointer(self)) + end tds.C.tds_vec_retain(self) end function mt.__read(self, f) -- cgit v1.2.3