<div dir="ltr"><div>Hi all,</div><div><br></div><div>I recently upgraded from vtk 6.1.0 to 6.2.0. Most of my rather large vtk-based application runs as before, but I get a crash in vtkImageMapToColors. I am testing on OSX10.8, but my jenkins indicates that this also happens on Ubuntu 14.04.</div><div><br></div><div>The vtkLookupTable that is input to the mapper has a custom NumberOfTableValues, and a little digging has shown that setting this value > 256 (the default) causes the crash.</div><div><br></div><div>Here is a distilled version of the problem:</div><div><br></div><div><span class="" style="white-space:pre">     </span>typedef vtkSmartPointer<vtkImageData> vtkImageDataPtr;</div><div><span class="" style="white-space:pre">       </span>typedef vtkSmartPointer<vtkLookupTable> vtkLookupTablePtr;</div><div><span class="" style="white-space:pre">   </span>typedef vtkSmartPointer<vtkImageMapToColors> vtkImageMapToColorsPtr;</div><div><br></div><div><span class="" style="white-space:pre">        </span>// create simple image data</div><div><span class="" style="white-space:pre">        </span>vtkImageDataPtr image = vtkImageDataPtr::New();</div><div><span class="" style="white-space:pre">    </span>image->SetExtent(0, 2, 0, 2, 0, 2); // 3x3x3 image</div><div><span class="" style="white-space:pre">      </span>image->AllocateScalars(VTK_UNSIGNED_CHAR, 1);</div><div><br></div><div><span class="" style="white-space:pre">  </span>// create simple lut data with a custom table size</div><div><span class="" style="white-space:pre"> </span>int numberOfTableValues = 257; // anything above 256 (default) fails</div><div><span class="" style="white-space:pre">       </span>vtkLookupTablePtr lut = vtkLookupTablePtr::New();</div><div><span class="" style="white-space:pre">  </span>lut->SetNumberOfTableValues(numberOfTableValues);</div><div><span class="" style="white-space:pre">       </span>lut->SetTableRange(0, numberOfTableValues - 1);</div><div><span class="" style="white-space:pre"> </span>lut->Build();</div><div><br></div><div><span class="" style="white-space:pre">  </span>// send through a vtkImageMapToColors</div><div><span class="" style="white-space:pre">      </span>vtkImageMapToColorsPtr mapper = vtkImageMapToColorsPtr::New();</div><div><span class="" style="white-space:pre">     </span>mapper->SetOutputFormatToRGBA();</div><div><span class="" style="white-space:pre">        </span>mapper->SetInputData(image);</div><div><span class="" style="white-space:pre">    </span>mapper->SetLookupTable(lut);</div><div><span class="" style="white-space:pre">    </span>mapper->Update(); // crashes deep inside vtkLookupTable::MapScalarsThroughTable2 </div><div><br></div><div>The call stack in the crashing thread is </div><div><br></div><div><span class="" style="white-space:pre">   </span>abort</div><div><span class="" style="white-space:pre">      </span>free </div><div><span class="" style="white-space:pre">     </span>vtkDataArrayTemplate<unsigned char>::ResizeAndExtend(long long) </div><div><span class="" style="white-space:pre">    </span>vtkDataArrayTemplate<unsigned char>::Resize(long long) </div><div><span class="" style="white-space:pre">     </span>void (anonymous namespace)::vtkLookupTableMapData<unsigned char>(...)</div><div><span class="" style="white-space:pre">        </span>vtkLookupTable::MapScalarsThroughTable2(void*, unsigned char*, int, int, int, int)</div><div><span class="" style="white-space:pre"> </span>vtkImageMapToColors::ThreadedRequestData(...)</div><div><span class="" style="white-space:pre">      </span>vtkThreadedImageAlgorithmThreadedExecute(...)</div><div><br></div><div>Even more digging shows that calling vtkLookupTable::MapScalarsThroughTable explicitly after creating the lut removes the crash:</div><div><br></div><div><span class="" style="white-space:pre">     </span>unsigned char input = 0;</div><div><span class="" style="white-space:pre">   </span>lut->MapScalarsThroughTable2(&input, &input, VTK_UNSIGNED_CHAR, 1, 1, 1);</div><div><br></div><div>I have not started digging into the vtk code itself yet. </div><div><br></div><div>I would appreciate if anyone have an idea of what is wrong here. I can file a bug report if noone have a solution.</div><div><br></div></div>