mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-22 01:35:35 +00:00
Bug 1386103 (part 0) - Don't pass lambdas to CreateOrRecycledMaskImageLayerFor. r=kats.
They cause inexplicable and monstrously complex compile errors in Android NDK code in combination with the (entirely unrelated) changes in the next patch.
This commit is contained in:
parent
baaea4b6c0
commit
784f2b42d4
@ -1289,7 +1289,7 @@ protected:
|
||||
struct MaskLayerKey;
|
||||
already_AddRefed<ImageLayer>
|
||||
CreateOrRecycleMaskImageLayerFor(const MaskLayerKey& aKey,
|
||||
const std::function<void(Layer* aLayer)>& aSetUserData);
|
||||
void(*aSetUserData)(Layer* aLayer));
|
||||
/**
|
||||
* Grabs all PaintedLayers and ColorLayers from the ContainerLayer and makes them
|
||||
* available for recycling.
|
||||
@ -2216,7 +2216,7 @@ ContainerState::CreateOrRecycleImageLayer(PaintedLayer *aPainted)
|
||||
|
||||
already_AddRefed<ImageLayer>
|
||||
ContainerState::CreateOrRecycleMaskImageLayerFor(const MaskLayerKey& aKey,
|
||||
const std::function<void(Layer* aLayer)>& aSetUserData)
|
||||
void(*aSetUserData)(Layer* aLayer))
|
||||
{
|
||||
RefPtr<ImageLayer> result = mRecycledMaskImageLayers.Get(aKey);
|
||||
if (result) {
|
||||
@ -3877,6 +3877,13 @@ GetASRForPerspective(const ActiveScrolledRoot* aASR, nsIFrame* aPerspectiveFrame
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void
|
||||
SetCSSMaskLayerUserData(Layer* aMaskLayer)
|
||||
{
|
||||
aMaskLayer->SetUserData(&gCSSMaskLayerUserData,
|
||||
new CSSMaskLayerUserData());
|
||||
}
|
||||
|
||||
void
|
||||
ContainerState::SetupMaskLayerForCSSMask(Layer* aLayer,
|
||||
nsDisplayMask* aMaskItem)
|
||||
@ -3885,12 +3892,7 @@ ContainerState::SetupMaskLayerForCSSMask(Layer* aLayer,
|
||||
|
||||
RefPtr<ImageLayer> maskLayer =
|
||||
CreateOrRecycleMaskImageLayerFor(MaskLayerKey(aLayer, Nothing()),
|
||||
[](Layer* aMaskLayer)
|
||||
{
|
||||
aMaskLayer->SetUserData(&gCSSMaskLayerUserData,
|
||||
new CSSMaskLayerUserData());
|
||||
}
|
||||
);
|
||||
SetCSSMaskLayerUserData);
|
||||
|
||||
CSSMaskLayerUserData* oldUserData =
|
||||
static_cast<CSSMaskLayerUserData*>(maskLayer->GetUserData(&gCSSMaskLayerUserData));
|
||||
@ -6385,6 +6387,13 @@ ContainerState::SetupMaskLayer(Layer *aLayer,
|
||||
SetClipCount(paintedData, aRoundedRectClipCount);
|
||||
}
|
||||
|
||||
void
|
||||
SetMaskLayerUserData(Layer* aMaskLayer)
|
||||
{
|
||||
aMaskLayer->SetUserData(&gMaskLayerUserData,
|
||||
new MaskLayerUserData());
|
||||
}
|
||||
|
||||
already_AddRefed<Layer>
|
||||
ContainerState::CreateMaskLayer(Layer *aLayer,
|
||||
const DisplayItemClip& aClip,
|
||||
@ -6401,13 +6410,7 @@ ContainerState::CreateMaskLayer(Layer *aLayer,
|
||||
// check if we can re-use the mask layer
|
||||
MaskLayerKey recycleKey(aLayer, aForAncestorMaskLayer);
|
||||
RefPtr<ImageLayer> maskLayer =
|
||||
CreateOrRecycleMaskImageLayerFor(recycleKey,
|
||||
[](Layer* aMaskLayer)
|
||||
{
|
||||
aMaskLayer->SetUserData(&gMaskLayerUserData,
|
||||
new MaskLayerUserData());
|
||||
}
|
||||
);
|
||||
CreateOrRecycleMaskImageLayerFor(recycleKey, SetMaskLayerUserData);
|
||||
MaskLayerUserData* userData = GetMaskLayerUserData(maskLayer);
|
||||
|
||||
int32_t A2D = mContainerFrame->PresContext()->AppUnitsPerDevPixel();
|
||||
|
Loading…
Reference in New Issue
Block a user