diff options
Diffstat (limited to 'docs/solidity-by-example.rst')
-rw-r--r-- | docs/solidity-by-example.rst | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/docs/solidity-by-example.rst b/docs/solidity-by-example.rst index 915cfa76..7e08c6b4 100644 --- a/docs/solidity-by-example.rst +++ b/docs/solidity-by-example.rst @@ -106,6 +106,10 @@ of votes. if (sender.voted) throw; + // Self-delegation is not allowed. + if (to == msg.sender) + throw; + // Forward the delegation as long as // `to` also delegated. // In general, such loops are very dangerous, @@ -114,16 +118,12 @@ of votes. // In this case, the delegation will not be executed, // but in other situations, such loops might // cause a contract to get "stuck" completely. - while ( - voters[to].delegate != address(0) && - voters[to].delegate != msg.sender - ) { + while (voters[to].delegate != address(0)) { to = voters[to].delegate; - } - // We found a loop in the delegation, not allowed. - if (to == msg.sender) { - throw; + // We found a loop in the delegation, not allowed. + if (to == msg.sender) + throw; } // Since `sender` is a reference, this |