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

Commit 48c7a6db authored by Alec Mouri's avatar Alec Mouri
Browse files

Add some logging in KawaseBlurFilter

Specifically, if we would have attempted to dereference a nullptr,
instead fatal log with a diagnostic message

Bug: 275754150
Change-Id: Icb23ed31d8dcddc8efd358276f1e99134a655a7b
parent f0049a04
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -57,6 +57,8 @@ KawaseBlurFilter::KawaseBlurFilter(): BlurFilter() {
sk_sp<SkImage> KawaseBlurFilter::generate(GrRecordingContext* context, const uint32_t blurRadius,
                                          const sk_sp<SkImage> input, const SkRect& blurRect)
    const {

    LOG_ALWAYS_FATAL_IF(input == nullptr, "%s: Invalid input image", __func__);
    // Kawase is an approximation of Gaussian, but it behaves differently from it.
    // A radius transformation is required for approximating them, and also to introduce
    // non-integer steps, necessary to smoothly interpolate large radii.
@@ -85,6 +87,7 @@ sk_sp<SkImage> KawaseBlurFilter::generate(GrRecordingContext* context, const uin

    // And now we'll build our chain of scaled blur stages
    for (auto i = 1; i < numberOfPasses; i++) {
        LOG_ALWAYS_FATAL_IF(tmpBlur == nullptr, "%s: tmpBlur is null for pass %d", __func__, i);
        blurBuilder.child("child") =
                tmpBlur->makeShader(SkTileMode::kClamp, SkTileMode::kClamp, linear);
        blurBuilder.uniform("in_blurOffset") = (float) i * radiusByPasses * kInputScale;