チケット #44778

Resolve script dangers around unit_change_owner()

登録: 2022-06-08 15:48 最終更新: 2022-06-16 13:29

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

詳細

A split of #44738.

It should be handled that this function sometimes does not give out a unit due to the callback in wipe_init(). In do_capture_units() stack iteration must be safe. Also, in diplomat_bribe() we should avoid getting into negative gold (what's the alternative?..)

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

2022-06-08 15:48 更新者: ihnatus
  • 新しいチケット "Resolve script dangers around unit_change_owner()" が作成されました
2022-06-10 06:39 更新者: ihnatus
2022-06-10 06:39 更新者: ihnatus
  • 添付ファイル 3.0-fix-unit_change_owner.patch (File ID: 9440) が削除されました
2022-06-10 06:46 更新者: ihnatus
コメント

A 3.0 patch is ready, it works for simple cases, though really nasty callbacks I could write still fail due to code out of scope (specifically, clearing of vision in server_remove_unit() before calling a callback that makes it not recursive); some changes done in previous patches in HRM849859 and #44312 are needed for it but the patches theselves should be modified to apply over or beneath this one.

2022-06-13 06:29 更新者: ihnatus
コメント

Prepared a 3.1 patch. It probably should apply to 3.2 but maybe we should rewrite 3.2 unit_change_owner() completely by HRM874201.

2022-06-13 14:55 更新者: cazfi
コメント

Reply To ihnatus

Prepared a 3.1 patch. It probably should apply to 3.2

Yes, it applies to master too.

---

- non_allied_not_listed_at() header begins with:
/*******************************************************************//*****
There should be no "*//*" part in S3_0, and in later branches it should be almost in the end of the line - unify with the other headers in the same source file (they are not unified over different source files)

- First line of the commit message should be one line summary (that shows up as heading in various places) followed by one empty line, and the full description after that. I've been adjusting the commit messages anyway, but less I need to do that, the better.

2022-06-14 03:22 更新者: ihnatus
コメント

Fixed. Also, added a notice on stdout (not shown to the players) if the gold is underflown.

2022-06-14 15:26 更新者: cazfi
  • 担当者(未割り当て) から cazfi に更新されました
  • 解決法なし から 受領 に更新されました
2022-06-16 13:26 更新者: cazfi
コメント

Reply To ihnatus

Fixed. Also, added a notice on stdout (not shown to the players) if the gold is underflown.

Clarification: This is freeciv logging (like it should), and not necessarily stdout.

2022-06-16 13:29 更新者: cazfi
  • 状況オープン から 完了 に更新されました
  • 解決法受領 から 修正済み に更新されました

添付ファイルリスト

編集

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