Xojo Math badly broken: 32bit problems in a 64bit environment

I tried your code. At first I thought I could not repeat the problem but then I realized that I needed to add another column to the Listbox :man_facepalming: and I wonder if the reviewers had the same problem - it is better to submit an example project!

Now your code SHOULD better be

Dim date1 As xojo.core.date = xojo.core.date.now
Dim date2 As xojo.core.date = xojo.core.date.now
Dim date3 As xojo.core.date = xojo.core.date.now

Dim interval2 As New Xojo.Core.DateInterval
Dim interval3 As New Xojo.Core.DateInterval

interval2.NanoSeconds = 2147483647
interval3.NanoSeconds = 2147483648

Listbox1.AddRow("Date Now", date1.ToText)
Listbox1.AddRow("Date 1", date2.ToText)
Listbox1.AddRow("Date 2", date3.ToText)

date3 = date2 + interval2
Listbox1.AddRow("Add 2147483647 nanosec to date 2", date3.ToText)

date3 = date2 + interval3
Listbox1.AddRow("Add 2147483648 nanosec to date 2", date3.ToText)

and I do see it: adding interval3 leads to a subtraction:

screenshot_208

So YES, that seems to be the same “cast to Int32 overflow error”

1 Like