Verified Commit b96034cc authored by Lee Salzman's avatar Lee Salzman Committed by ma1
Browse files

Bug 1913773 - Ensure mCurrentShmem is valid. r=aosmond

Adapted from esr140 to esr128 (tor-browser#44199)

Differential Revision: https://phabricator.services.mozilla.com/D219832
parent fa6f4582
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -266,7 +266,7 @@ void CanvasTranslator::AddBuffer(ipc::SharedMemoryBasic::Handle&& aBufferHandle,
  CheckAndSignalWriter();

  // Default sized buffers will have been queued for recycling.
  if (mCurrentShmem.Size() == mDefaultBufferSize) {
  if (mCurrentShmem.IsValid() && mCurrentShmem.Size() == mDefaultBufferSize) {
    mCanvasShmems.emplace(std::move(mCurrentShmem));
  }

+6 −2
Original line number Diff line number Diff line
@@ -358,9 +358,13 @@ class CanvasTranslator final : public gfx::InlineTranslator,

  struct CanvasShmem {
    RefPtr<ipc::SharedMemoryBasic> shmem;
    auto Size() { return shmem->Size(); }
    bool IsValid() const { return !!shmem; }
    auto Size() { return shmem ? shmem->Size() : 0; }
    gfx::MemReader CreateMemReader() {
      return {static_cast<char*>(shmem->memory()), Size()};
      if (!shmem) {
        return {nullptr, 0};
      }
      return {static_cast<char*>(shmem->Memory()), Size()};
    }
  };
  std::queue<CanvasShmem> mCanvasShmems;