summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/mutation.cc
diff options
context:
space:
mode:
authorStefan O'Rear <stefanor@cox.net>2009-11-10 02:50:44 -0800
committerStefan O'Rear <stefanor@cox.net>2009-11-10 02:50:44 -0800
commiteca809f540288cedd887dc8ef7ed191030b884b0 (patch)
tree05f1bc9e6cd39fae155635c687fe123d8fabc124 /crawl-ref/source/mutation.cc
parent9e2b5b695e17282d4c0de9c7cb5e091fb063c1e4 (diff)
downloadcrawl-ref-eca809f540288cedd887dc8ef7ed191030b884b0.tar.gz
crawl-ref-eca809f540288cedd887dc8ef7ed191030b884b0.zip
Fix off by 1 error in _select_ds_mutations
This bug resulted in a crash, but only with -O2 and only on x86_64. Finding this bug turned out to require two hours of staring at gdb disassembly output and tracking the values of registers, since info locals didn't work. I think my hacker level just went up.
Diffstat (limited to 'crawl-ref/source/mutation.cc')
-rw-r--r--crawl-ref/source/mutation.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/crawl-ref/source/mutation.cc b/crawl-ref/source/mutation.cc
index 565bdbad9e..8aaf5460d3 100644
--- a/crawl-ref/source/mutation.cc
+++ b/crawl-ref/source/mutation.cc
@@ -2855,7 +2855,7 @@ try_again:
std::set<const facet_def *> facets_used;
- for (int tier = ARRAYSZ(ct_of_tier); tier >= 0; --tier)
+ for (int tier = ARRAYSZ(ct_of_tier) - 1; tier >= 0; --tier)
{
for (int nfacet = 0; nfacet < ct_of_tier[tier]; ++nfacet)
{