On Wed, Oct 23, 2013 at 7:07 PM, Martin Dobias <wonder...@gmail.com> wrote: > Hi Radim > > On Wed, Oct 23, 2013 at 10:02 PM, Radim Blazek <radim.bla...@gmail.com> wrote: >> I have a strange problem, >> block = QgsRasterBlock ( QGis.ARGB32_Premultiplied, 10, 10, 0 ) >> block.setColor( 0, QColor ().rgb() ) >> prints warning when run in QGIS Python shell (in QGIS debug output, >> not in shell): >> qgsrasterblock.cpp: 378: (setColor) index 140703128616960 out of range
Thanks for test, > When I enter those two lines into QGIS python console, it work fine > (no debug output, result of setColor() call is True). Tested on linux > 64bit, QGIS master (debug), SIP v4.15.2. could you also test if you get the right value from block back block.color( index ) and with indexes > 0 > Otherwise I do not really have an idea what goes wrong there (btw. the > index is an interesting number - in hex it is 0x7ff800000000 it does not seem to be really correct > - maybe it is not handling size_t type correctly? yes, size_t seems to be the problem, it is not defined in qgsrasterblock.sip, probably the definition from qgsgeometry.sip is used: %If (WS_MACX) typedef unsigned long size_t; %End %If (WS_X11 || WS_WIN) typedef unsigned int size_t; %End which does not seem to be very robust. BTW, how to define such things correctly, in each sip file or globally in another sip file for all? > what if you change that > "size_t" argument in .sip file to something else?) With int it works. Radim > Martin _______________________________________________ Qgis-developer mailing list Qgis-developer@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/qgis-developer