チケット #42883

advance_index_iterate(): Move advance_count() call outside the loop

登録: 2021-09-19 21:28 最終更新: 2021-09-30 19:50

報告者:
担当者:
チケットの種類:
状況:
完了
コンポーネント:
マイルストーン:
優先度:
5 - 中
重要度:
5 - 中
解決法:
修正済み
ファイル:
1

詳細

advance_index_iterate() terminates when index variable reaches advance_count(). The advance_count() is called for the check each and every round of the iteration. That's a lot of unnecessary function call overhead. We should call it just once, outside the loop, and place the result in a variable to use inside the loop.

There's currently gcc-12 trouble with advance_index_iterate() involved. Maybe we should wait that to get resolved first, though I think it's a compiler, not freeciv, bug. ( Filed https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102405 )

チケットの履歴 (5 件中 3 件表示)

2021-09-19 21:28 更新者: cazfi
  • 新しいチケット "advance_index_iterate(): Move advance_count() call outside the loop" が作成されました
2021-09-20 06:53 更新者: cazfi
コメント

Reply To cazfi

There's currently gcc-12 trouble with advance_index_iterate() involved. Maybe we should wait that to get resolved first, though I think it's a compiler, not freeciv, bug.

Gcc considered it not-a-bug, so we have to handle that ourselves -> #42885

2021-09-23 11:52 更新者: cazfi
  • 解決法なし から 受領 に更新されました
  • マイルストーン(未割り当て) から 2.6.6 (完了済み) に更新されました
2021-09-30 19:50 更新者: cazfi
  • 状況オープン から 完了 に更新されました
  • 担当者(未割り当て) から cazfi に更新されました
  • 解決法受領 から 修正済み に更新されました

添付ファイルリスト

編集

このチケットにコメントを追加するには、ログインが必要です » ログインする