Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 27cfaae7 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Remove use of SkRefCnt_SafeAssign."

parents a741f5dc c1a8a46f
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -44,8 +44,8 @@ void LayerProperties::reset() {
}

bool LayerProperties::setColorFilter(SkColorFilter* filter) {
    if (mColorFilter == filter) return false;
    SkRefCnt_SafeAssign(mColorFilter, filter);
    if (mColorFilter.get() == filter) return false;
    mColorFilter = sk_ref_sp(filter);
    return true;
}

@@ -62,7 +62,7 @@ LayerProperties& LayerProperties::operator=(const LayerProperties& other) {
    setOpaque(other.opaque());
    setAlpha(other.alpha());
    setXferMode(other.xferMode());
    setColorFilter(other.colorFilter());
    setColorFilter(other.getColorFilter());
    return *this;
}

+3 −4
Original line number Diff line number Diff line
@@ -89,9 +89,7 @@ public:

    SkBlendMode xferMode() const { return mMode; }

    bool setColorFilter(SkColorFilter* filter);

    SkColorFilter* colorFilter() const { return mColorFilter; }
    SkColorFilter* getColorFilter() const { return mColorFilter.get(); }

    // Sets alpha, xfermode, and colorfilter from an SkPaint
    // paint may be NULL, in which case defaults will be set
@@ -105,6 +103,7 @@ private:
    LayerProperties();
    ~LayerProperties();
    void reset();
    bool setColorFilter(SkColorFilter* filter);

    // Private since external users should go through properties().effectiveLayerType()
    LayerType type() const { return mType; }
@@ -116,7 +115,7 @@ private:
    bool mOpaque;
    uint8_t mAlpha;
    SkBlendMode mMode;
    SkColorFilter* mColorFilter = nullptr;
    sk_sp<SkColorFilter> mColorFilter;
};

/*
+16 −24
Original line number Diff line number Diff line
@@ -59,12 +59,6 @@ namespace VectorDrawable {
        onPropertyChanged();                                          \
        retVal;                                                       \
    })
#define UPDATE_SKPROP(field, value)                                    \
    ({                                                                 \
        bool retVal = ((field) != (value));                            \
        if ((field) != (value)) SkRefCnt_SafeAssign((field), (value)); \
        retVal;                                                        \
    })

/* A VectorDrawable is composed of a tree of nodes.
 * Each node can be a group node, or a path.
@@ -223,29 +217,28 @@ public:
            int fillType = 0; /* non-zero or kWinding_FillType in Skia */
        };
        explicit FullPathProperties(Node* mNode) : Properties(mNode), mTrimDirty(false) {}
        ~FullPathProperties() {
            SkSafeUnref(fillGradient);
            SkSafeUnref(strokeGradient);
        }
        ~FullPathProperties() {}
        void syncProperties(const FullPathProperties& prop) {
            mPrimitiveFields = prop.mPrimitiveFields;
            mTrimDirty = true;
            UPDATE_SKPROP(fillGradient, prop.fillGradient);
            UPDATE_SKPROP(strokeGradient, prop.strokeGradient);
            fillGradient = prop.fillGradient;
            strokeGradient = prop.strokeGradient;
            onPropertyChanged();
        }
        void setFillGradient(SkShader* gradient) {
            if (UPDATE_SKPROP(fillGradient, gradient)) {
            if (fillGradient.get() != gradient) {
                fillGradient = sk_ref_sp(gradient);
                onPropertyChanged();
            }
        }
        void setStrokeGradient(SkShader* gradient) {
            if (UPDATE_SKPROP(strokeGradient, gradient)) {
            if (strokeGradient.get() != gradient) {
                strokeGradient = sk_ref_sp(gradient);
                onPropertyChanged();
            }
        }
        SkShader* getFillGradient() const { return fillGradient; }
        SkShader* getStrokeGradient() const { return strokeGradient; }
        SkShader* getFillGradient() const { return fillGradient.get(); }
        SkShader* getStrokeGradient() const { return strokeGradient.get(); }
        float getStrokeWidth() const { return mPrimitiveFields.strokeWidth; }
        void setStrokeWidth(float strokeWidth) {
            VD_SET_PRIMITIVE_FIELD_AND_NOTIFY(strokeWidth, strokeWidth);
@@ -325,8 +318,8 @@ public:
            count,
        };
        PrimitiveFields mPrimitiveFields;
        SkShader* fillGradient = nullptr;
        SkShader* strokeGradient = nullptr;
        sk_sp<SkShader> fillGradient;
        sk_sp<SkShader> strokeGradient;
    };

    // Called from UI thread
@@ -550,8 +543,7 @@ public:
            SkRect bounds;
            int scaledWidth = 0;
            int scaledHeight = 0;
            SkColorFilter* colorFilter = nullptr;
            ~NonAnimatableProperties() { SkSafeUnref(colorFilter); }
            sk_sp<SkColorFilter> colorFilter;
        } mNonAnimatableProperties;
        bool mNonAnimatablePropertiesDirty = true;

@@ -561,8 +553,7 @@ public:
        void syncNonAnimatableProperties(const TreeProperties& prop) {
            // Copy over the data that can only be changed in UI thread
            if (mNonAnimatableProperties.colorFilter != prop.mNonAnimatableProperties.colorFilter) {
                SkRefCnt_SafeAssign(mNonAnimatableProperties.colorFilter,
                                    prop.mNonAnimatableProperties.colorFilter);
                mNonAnimatableProperties.colorFilter = prop.mNonAnimatableProperties.colorFilter;
            }
            mNonAnimatableProperties = prop.mNonAnimatableProperties;
        }
@@ -599,12 +590,13 @@ public:
            }
        }
        void setColorFilter(SkColorFilter* filter) {
            if (UPDATE_SKPROP(mNonAnimatableProperties.colorFilter, filter)) {
            if (mNonAnimatableProperties.colorFilter.get() != filter) {
                mNonAnimatableProperties.colorFilter = sk_ref_sp(filter);
                mNonAnimatablePropertiesDirty = true;
                mTree->onPropertyChanged(this);
            }
        }
        SkColorFilter* getColorFilter() const { return mNonAnimatableProperties.colorFilter; }
        SkColorFilter* getColorFilter() const { return mNonAnimatableProperties.colorFilter.get(); }

        float getViewportWidth() const { return mNonAnimatableProperties.viewportWidth; }
        float getViewportHeight() const { return mNonAnimatableProperties.viewportHeight; }
+2 −2
Original line number Diff line number Diff line
@@ -156,10 +156,10 @@ static bool layerNeedsPaint(const LayerProperties& properties, float alphaMultip
                            SkPaint* paint) {
    paint->setFilterQuality(kLow_SkFilterQuality);
    if (alphaMultiplier < 1.0f || properties.alpha() < 255 ||
        properties.xferMode() != SkBlendMode::kSrcOver || properties.colorFilter() != nullptr) {
        properties.xferMode() != SkBlendMode::kSrcOver || properties.getColorFilter() != nullptr) {
        paint->setAlpha(properties.alpha() * alphaMultiplier);
        paint->setBlendMode(properties.xferMode());
        paint->setColorFilter(sk_ref_sp(properties.colorFilter()));
        paint->setColorFilter(sk_ref_sp(properties.getColorFilter()));
        return true;
    }
    return false;