diff options
author | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-06-10 22:15:27 +0000 |
---|---|---|
committer | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2009-06-10 22:15:27 +0000 |
commit | 8139324f50a0685218d606c7e89e44f3c3ab9da8 (patch) | |
tree | a58ee0b8c2c72abb97ead0c9c4ee43dd10c07010 /crawl-ref/source/abl-show.cc | |
parent | 677bb30a8e6bc99e66955e829329dba3f217e535 (diff) | |
download | crawl-ref-8139324f50a0685218d606c7e89e44f3c3ab9da8.tar.gz crawl-ref-8139324f50a0685218d606c7e89e44f3c3ab9da8.zip |
Fix 2800089: the standard does not guarantee that you can convert
from integer types to pointers and back.
While we're at it, fix an older bug which might trigger if we ever
have a platform where different pointer types have different sizes.
Technically the standard does not guarantee (I think) that this isn't
the case.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@9947 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/abl-show.cc')
-rw-r--r-- | crawl-ref/source/abl-show.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/crawl-ref/source/abl-show.cc b/crawl-ref/source/abl-show.cc index 30d4e972b5..c811679bef 100644 --- a/crawl-ref/source/abl-show.cc +++ b/crawl-ref/source/abl-show.cc @@ -1985,7 +1985,7 @@ int choose_ability_menu(const std::vector<talent>& talents) { MenuEntry* me = new MenuEntry(_describe_talent(talents[i]), MEL_ITEM, 1, talents[i].hotkey); - me->data = reinterpret_cast<void*>(numbers+i); + me->data = &numbers[i]; abil_menu.add_entry(me); } } @@ -1999,7 +1999,7 @@ int choose_ability_menu(const std::vector<talent>& talents) { MenuEntry* me = new MenuEntry(_describe_talent(talents[i]), MEL_ITEM, 1, talents[i].hotkey); - me->data = reinterpret_cast<void*>(numbers+i); + me->data = &numbers[i]; abil_menu.add_entry(me); } } @@ -2015,12 +2015,12 @@ int choose_ability_menu(const std::vector<talent>& talents) ASSERT(sel.size() == 1); ASSERT(sel[0]->hotkeys.size() == 1); - int selected = *(reinterpret_cast<int*>(sel[0]->data)); + int selected = *(static_cast<int*>(sel[0]->data)); if (abil_menu.menu_action == Menu::ACT_EXAMINE) _print_talent_description(talents[selected]); else - return (*(reinterpret_cast<int*>(sel[0]->data))); + return (*(static_cast<int*>(sel[0]->data))); } } |