Commit f7b7decb authored by Bob Owen's avatar Bob Owen Committed by Richard Pospesel
Browse files

Bug 1846683: Make assertions in FilterNodeD2D1::SetInput release assertions. r=jrmuizel a=pascalc

parent b245331a
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -663,7 +663,6 @@ void FilterNodeD2D1::InitUnmappedProperties() {
void FilterNodeD2D1::SetInput(uint32_t aIndex, SourceSurface* aSurface) {
  UINT32 input = GetD2D1InputForInput(mType, aIndex);
  ID2D1Effect* effect = InputEffect();
  MOZ_ASSERT(input < effect->GetInputCount());

  if (mType == FilterType::COMPOSITE) {
    UINT32 inputCount = effect->GetInputCount();
@@ -675,10 +674,11 @@ void FilterNodeD2D1::SetInput(uint32_t aIndex, SourceSurface* aSurface) {
    }
  }

  MOZ_ASSERT(input < effect->GetInputCount());
  auto inputCount = effect->GetInputCount();
  MOZ_RELEASE_ASSERT(input < inputCount);

  mInputSurfaces.resize(effect->GetInputCount());
  mInputFilters.resize(effect->GetInputCount());
  mInputSurfaces.resize(inputCount);
  mInputFilters.resize(inputCount);

  // In order to convert aSurface into an ID2D1Image, we need to know what
  // DrawTarget we paint into. However, the same FilterNode object can be
@@ -708,7 +708,8 @@ void FilterNodeD2D1::SetInput(uint32_t aIndex, FilterNode* aFilter) {
    }
  }

  MOZ_ASSERT(input < effect->GetInputCount());
  auto inputCount = effect->GetInputCount();
  MOZ_RELEASE_ASSERT(input < inputCount);

  if (aFilter && aFilter->GetBackendType() != FILTER_BACKEND_DIRECT2D1_1) {
    gfxWarning() << "Unknown input FilterNode set on effect.";
@@ -718,8 +719,8 @@ void FilterNodeD2D1::SetInput(uint32_t aIndex, FilterNode* aFilter) {

  FilterNodeD2D1* filter = static_cast<FilterNodeD2D1*>(aFilter);

  mInputSurfaces.resize(effect->GetInputCount());
  mInputFilters.resize(effect->GetInputCount());
  mInputSurfaces.resize(inputCount);
  mInputFilters.resize(inputCount);

  // We hold on to the FilterNode object so that we can call WillDraw() on it.
  mInputSurfaces[input] = nullptr;