It's amazing, if you haven't seen it, you won't believe it.
What I write now refers to my own experience with it,
I neither insist that it is right nor that it is wrong.
The bug cannot be reproduced with a small demo code.
It exists for a long time, how long I don't know.
When codes get bigger it can appear suddenly, in all OS.
When a string function is executed in a procedure it can occur.
Badly, it also occurs in Val(), which causes values to be extremely corrupted, resulting in
which leads to malfunctions and crashes.
With Val() it looks like this
that everything is interpreted as a number until two zeros in memory terminate it.
Hard or factually not localizable crashes with large or very large codes,
which suddenly arise during development are signs of this.
Here it happens only on macOS and only on this code.
Note that not only the text but also the white color is gone, there will be overwrites !
So more than one parameter is damaged by the bug, that can really pop.
This can lead to inexplicable crashes, which can drive you to sheer despair if they do not know about it.
The behavior can be reproduced on any Mac.
But as said, this bug is primary not Mac specific !
If you create a small demo code the bug is gone
Code: Select all
Procedure.s test(canvas_ID, ; output_ID
text$, ; Font$
a, ; font_flag
b, ; output_x
c, ; output_y
d, ; output_width
e, ; output_height
f, ; text_color
g, ; text_adjustment
h, ; background_color -1 = invisible
text1$, ; text$
i, ; padding_x
j, ; padding_y
k) ; resize_factor.f
ProcedureReturn text1$
EndProcedure
x=10
Debug Test(0, ; output_ID
"", ; Font$
0, ; font_flag
0, ; output_x
0, ; output_y
0, ; output_width
0, ; output_height
0, ; text_color
0, ; text_adjustment
0, ; background_color -1 = invisible
Str(x), ; text$
0, ; padding_x
0, ; padding_y
0) ; resize_factor.f
Fail