hanabi-learning-environment icon indicating copy to clipboard operation
hanabi-learning-environment copied to clipboard

Fix HanabiState.copy setting a bad pointer for _game member

Open 98devin opened this issue 5 years ago • 2 comments

Fixes HanabiState.fireworks() returning incorrect data when called on a copied HanabiState object.

Came across this bug in work-related project. The bug is pretty easily fixed by retrieving the parent game of the state into an existing pyhanabi_game_t* instead of returning a void pointer as was done before.

Steps to reproduce the bug as it existed:

  • Create a HanabiState object by calling HanabiState.copy or using the copy constructor manually
  • HanabiState._game will receive a hanabi_learning_env::HanabiGame* rather than pyhanabi_game_t*.
  • HanabiState.fireworks() and any derived HanabiObservation.fireworks() calls will return bad data, because lib.NumPlayers/lib.NumColors/lib.NumRanks will access garbage memory when called on the resulting _game field.

98devin avatar Jul 30 '20 14:07 98devin

Thanks for your pull request. It looks like this may be your first contribution to a Google open source project (if not, look below for help). Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

:memo: Please visit https://cla.developers.google.com/ to sign.

Once you've signed (or fixed any issues), please reply here with @googlebot I signed it! and we'll verify it.


What to do if you already signed the CLA

Individual signers
Corporate signers

ℹ️ Googlers: Go here for more info.

googlebot avatar Jul 30 '20 14:07 googlebot

Hi 98devin, Thank you for the suggested fix. It looks right to me. Could you please sign the CLA, and I'll merge those changes?

NeilBurch avatar Oct 27 '20 17:10 NeilBurch