| Index: gm/labpcsdemo.cpp
 | 
| diff --git a/gm/labpcsdemo.cpp b/gm/labpcsdemo.cpp
 | 
| index 4bd9ed8140f43790397637c48843fcacfb2126c1..730f0dde0df5fe70ae7796df84cfa9007aa86d36 100644
 | 
| --- a/gm/labpcsdemo.cpp
 | 
| +++ b/gm/labpcsdemo.cpp
 | 
| @@ -175,14 +175,27 @@ protected:
 | 
|          if (convertLabToXYZ) {
 | 
|              SkASSERT(SkColorSpace_Base::Type::kA2B == as_CSB(colorSpace)->type());
 | 
|              SkColorSpace_A2B& cs = *static_cast<SkColorSpace_A2B*>(colorSpace.get());
 | 
| +            const SkColorLookUpTable* colorLUT = nullptr;
 | 
|              bool printConversions = false;
 | 
| -            SkASSERT(cs.colorLUT());
 | 
|              // We're skipping evaluating the TRCs and the matrix here since they aren't
 | 
|              // in the ICC profile initially used here.
 | 
| -            SkASSERT(kLinear_SkGammaNamed == cs.aCurveNamed());
 | 
| -            SkASSERT(kLinear_SkGammaNamed == cs.mCurveNamed());
 | 
| -            SkASSERT(kLinear_SkGammaNamed == cs.bCurveNamed());
 | 
| -            SkASSERT(cs.matrix().isIdentity());
 | 
| +            for (size_t e = 0; e < cs.count(); ++e) {
 | 
| +                switch (cs.element(e).type()) {
 | 
| +                    case SkColorSpace_A2B::Element::Type::kGammaNamed:
 | 
| +                        SkASSERT(kLinear_SkGammaNamed == cs.element(e).gammaNamed());
 | 
| +                        break;
 | 
| +                    case SkColorSpace_A2B::Element::Type::kGammas:
 | 
| +                        SkASSERT(false);
 | 
| +                        break;
 | 
| +                    case SkColorSpace_A2B::Element::Type::kCLUT:
 | 
| +                        colorLUT = &cs.element(e).colorLUT();
 | 
| +                        break;
 | 
| +                    case SkColorSpace_A2B::Element::Type::kMatrix:
 | 
| +                        SkASSERT(cs.element(e).matrix().isIdentity());
 | 
| +                        break;
 | 
| +                }
 | 
| +            }
 | 
| +            SkASSERT(colorLUT);
 | 
|              for (int y = 0; y < imageHeight; ++y) {
 | 
|                  for (int x = 0; x < imageWidth; ++x) {
 | 
|                      uint32_t& p = *bitmap.getAddr32(x, y);
 | 
| @@ -195,7 +208,7 @@ protected:
 | 
|  
 | 
|                      float lab[4] = { r * (1.f/255.f), g * (1.f/255.f), b * (1.f/255.f), 1.f };
 | 
|                      
 | 
| -                    interp_3d_clut(lab, lab, cs.colorLUT());
 | 
| +                    interp_3d_clut(lab, lab, colorLUT);
 | 
|                      
 | 
|                      // Lab has ranges [0,100] for L and [-128,127] for a and b
 | 
|                      // but the ICC profile loader stores as [0,1]. The ICC
 | 
| 
 |