I am seeing some very strange corruption in variables during execution of a script. Here's a fragment of an execution trace to illustrate what I'm seeing.
64 *-* Say Nominee >V> "" *-* Say Token >V> "Hollywood" *-* Say Workstring >V> "Ash "
I have inserted 3 SAY requests in my script to display the contents of the 3 variables I'm focussing on. This shows their values at this point within the process (which is an extract from a log that is about 100,000 lines long).
The next thing is this function call:
65 *-* Token = Upper(Token, 1, 1) /* Make sure the initial letter is upper case */ >V> "Hollywood" >L> "1" >L> "1" >F> "Hollywood"
Everything looks good. This function touches one of the 3 variables in question, leaving the other 2 untouched. After this, I've got my 3 SAY requests again:
66 *-* Say Nominee >V> "" *-* Say Token >V> "Hollywood" *-* Say Workstring >V> "Ash Ash ÐŒõ àŒõ ðŒõ õ õ "
Without making any reference to my variable named Workstring in my Upper function, suddenly it has grown a tail of junk. Here's the next 2 statements executed in the script. They're actually irrelevant to the issue but I feel like I should show them just so you don't think I'm editing things to suit my case.
67 *-* If Token = "St" Then Token = "St." >V> "Hollywood" >L> "St" >O> "0" 68 *-* WorkString = WorkString||Token||" " /* Insert the space back in that Parse removes */ >V> "Ash Ash ÐŒõ àŒõ ðŒõ õ õ " >V> "Hollywood" >O> "Ash Ash ÐŒõ àŒõ ðŒõ õ õ Hollywood" >L> " " >O> "Ash Ash ÐŒõ àŒõ ðŒõ õ õ Hollywood "
And then I dump my 3 variables again:
69 *-* Say Nominee >V> "" *-* Say Token >V> "Hollywoo`" *-* Say Workstring >V> "Ash Ash ÐŒõ àŒõ ðŒõ õ õ Hollywood "
As you can see, the variable named Token has now got some corruption in it. The final character "d" has been overlaid with a junk character.
This is very disturbing.
Unable to reproduce on 32bit Linux.