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

Commit 47e57e0b authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Null check color_space_ptr in draw functor v2" into sc-dev am: de41c86d am: 166bce82

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15328753

Change-Id: I5a541344971117b9dae52b1f715ca26eec7d78a3
parents 75073b8d 166bce82
Loading
Loading
Loading
Loading
+16 −4
Original line number Original line Diff line number Diff line
@@ -116,8 +116,14 @@ void draw_gl(int functor, void* data,
  }
  }
  COMPILE_ASSERT(sizeof(params.color_space_toXYZD50) == sizeof(skcms_Matrix3x3),
  COMPILE_ASSERT(sizeof(params.color_space_toXYZD50) == sizeof(skcms_Matrix3x3),
                 gamut_transform_size_mismatch);
                 gamut_transform_size_mismatch);
  if (draw_gl_params.color_space_ptr) {
      draw_gl_params.color_space_ptr->toXYZD50(
      draw_gl_params.color_space_ptr->toXYZD50(
              reinterpret_cast<skcms_Matrix3x3*>(&params.color_space_toXYZD50));
              reinterpret_cast<skcms_Matrix3x3*>(&params.color_space_toXYZD50));
  } else {
      // Assume sRGB.
      memcpy(&params.color_space_toXYZD50, &SkNamedGamut::kSRGB,
             sizeof(params.color_space_toXYZD50));
  }


  SupportData* support = static_cast<SupportData*>(data);
  SupportData* support = static_cast<SupportData*>(data);
  support->callbacks.draw_gl(functor, support->data, &params);
  support->callbacks.draw_gl(functor, support->data, &params);
@@ -196,8 +202,14 @@ void drawVk(int functor, void* data,
  };
  };
  COMPILE_ASSERT(sizeof(params.color_space_toXYZD50) == sizeof(skcms_Matrix3x3),
  COMPILE_ASSERT(sizeof(params.color_space_toXYZD50) == sizeof(skcms_Matrix3x3),
                 gamut_transform_size_mismatch);
                 gamut_transform_size_mismatch);
  if (draw_vk_params.color_space_ptr) {
      draw_vk_params.color_space_ptr->toXYZD50(
      draw_vk_params.color_space_ptr->toXYZD50(
              reinterpret_cast<skcms_Matrix3x3*>(&params.color_space_toXYZD50));
              reinterpret_cast<skcms_Matrix3x3*>(&params.color_space_toXYZD50));
  } else {
      // Assume sRGB.
      memcpy(&params.color_space_toXYZD50, &SkNamedGamut::kSRGB,
             sizeof(params.color_space_toXYZD50));
  }
  COMPILE_ASSERT(NELEM(params.transform) == NELEM(draw_vk_params.transform),
  COMPILE_ASSERT(NELEM(params.transform) == NELEM(draw_vk_params.transform),
                 mismatched_transform_matrix_sizes);
                 mismatched_transform_matrix_sizes);
  for (int i = 0; i < NELEM(params.transform); ++i) {
  for (int i = 0; i < NELEM(params.transform); ++i) {