diff options
author | Björn Gustavsson <[email protected]> | 2011-03-17 11:22:33 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2011-08-16 08:58:47 +0200 |
commit | de89cb1afac666d39526f68e4a5b817c246b5ad2 (patch) | |
tree | 964bd0baccd01085e3bd40c624a83e07c3036e17 /lib/runtime_tools | |
parent | 45ec105b3a7962370413906b5fa49a6a73cf3d83 (diff) | |
download | otp-de89cb1afac666d39526f68e4a5b817c246b5ad2.tar.gz otp-de89cb1afac666d39526f68e4a5b817c246b5ad2.tar.bz2 otp-de89cb1afac666d39526f68e4a5b817c246b5ad2.zip |
Handle terms in the top-level of guards properly
Expressions in guards such as:
f() when [1,2,3] ->
ok.
would cause the debugger to crash when attempting to interpret the
module containing the expressions. Other kind of constants such as:
f() when 42 ->
ok.
were converted to an invalid internal format ({integer,Line,42}
instead of {value,Line,42}), but that happened to work because
because anything not equal to 'true' (even a crash) was interpreted
as 'false'.
Make sure to handle all possible expressions and convert them
directly to {value,Line,false}. Remove the special handling of
the atom 'true' in and_guard/1 since it is no longer needed.
Diffstat (limited to 'lib/runtime_tools')
0 files changed, 0 insertions, 0 deletions