tree b14b81e2b722753ba309f39f2fe08641357fa6a7
parent 94a778d94e76dad9b7eada890828b31a7a6958a7
author Austin Foxley <afoxley@pigweed.infra.roller.google.com> 1728075932 +0000
committer CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> 1728075932 +0000

roll: pigweed pw_rpc: Fix Call not getting reset on default constructor assignment

When trying to reinitialize an already used Call object to default,
the move constructor runs but ends up exiting early before actually
resetting the call internal state due to this conditional:

  if (!other.active_locked()) {
    return;  // Nothing else to do; this call is already closed.
  }

A default Call has state_ initialized to 0, so active_locked()
returns false so none of the assignments happen on `this`.

We fix this by letting the bulk of the move assignments happen
regardless of active state, except for those parts that apply
specifically to active calls.

Original-Bug: 371211198
Original-Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/239718
Original-Revision: 05e93dadc080e45d624d92b80879297cfade417c

Rolled-Repo: https://pigweed.googlesource.com/pigweed/pigweed
Rolled-Commits: 2e91930eff5ffa..05e93dadc080e4
Roller-URL: https://ci.chromium.org/b/8734974952960605441
GitWatcher: ignore
CQ-Do-Not-Cancel-Tryjobs: true
Change-Id: Iab564f0965864f8586fba0b721f89a5b2f2e0895
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/quickstart/bazel/+/240232
Bot-Commit: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Commit-Queue: Pigweed Roller <pigweed-roller@pigweed-service-accounts.iam.gserviceaccount.com>
Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
