Skia下SK_DEBUG内联的坑
以下代码可能出现看起来诡异的错误 { auto data = image->encodeToData(); std::stringstream ss; ss << count++ << "_output.png"; if (data) { SkFILEWStream out(ss.str().c_str()); out.write(data->writable_data(), data->size()); } } 错误如下: * thread #3, name = 'RasterThread', stop reason = signal SIGILL: illegal operand * frame #0: 0x000000000c02edd4 Sxxxx`sk_abort_no_print() at SkMemory_malloc.cpp:51:5 frame #1: 0x000000000bbbee39 Sxxxx`SkNVRefCnt<SkData>::~SkNVRefCnt(this=0x00007fffafdff530)::'lambda'()::operator()() const at SkRefCnt.h:165:9 frame #2: 0x000000000bbbec35 Sxxxx`SkNVRefCnt<SkData>::~SkNVRefCnt(this=0x00007fffa8006090) at SkRefCnt.h:165:9 frame #3: 0x000000000bbbd8ba Sxxxx`SkData::~SkData(this=0x00007fffa8006090) at SkData.cpp:37:1 具体是因为这个ASSERT: ~SkNVRefCnt() { #ifdef SK_DEBUG int