aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/solidity-by-example.rst16
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