undeclared variables getting through in Strict Compilation mode
dochawk at gmail.com
Tue Feb 17 02:48:44 CET 2015
On Mon, Feb 16, 2015 at 2:03 PM, J. Landman Gay <jacque at hyperactivesw.com>
> I'm still not sure what you saw. Maybe if you can post the handler and
> describe what happened again we will spot something.
It used to be
local prefsDir, prefsFilNam, newPrefsDb, prTabNams
local dcmd, theData, vtb
put "SELECT pref, pval FROM prefs" into dcmd
put revDataFromQuery(tab,vtb,prefsDb,dcmd) into prAry
split prAry by vtb and tab
It threw no error loading prAry, and it turned into the correct array.
Single step into the calling handler, and prAry and the global prAry was
Strict compilation was set in the preferences; I checked. I can't use
explicit variables without a significant code rewrite, as "long name"
produces a result that is incompatible with, well, livecode.
I added "global prAry" after the local declarations, and everything worked
fine (which also shows that prAry wasn't declared somewhere else [unless
there is something even *worse* going on! :)])
It was similar in the other instance (actually, I think it was allowing
prefsDb to be set localy even though it wasn't declared)
Dr. Richard E. Hawkins, Esq.
More information about the use-livecode