On 8 May 2015 at 21:32, Igor Stasenko <[email protected]> wrote:

>
>
> On 8 May 2015 at 00:43, Nicolai Hess <[email protected]> wrote:
>
>>
>> Some testers needed!
>>
>> I can not reproduce the BitBlt bug and I would like to get this right, so
>> that surface pattern
>> paints use the correct form dimension.
>>
>> Be sure, my fried, the bug is there, sitting in VM.
> Bitblt implementation prereads a pixel from bitmap *before* checking the
> loop bounds, meaning that it reads at least a single byte beyond the actual
> contents of the bitmap.
> It is not harmful in cases when bitmap is allocated in object memory since
> VM memory design actually guarantees, that there are at least certain
> amount of bytes in form of breathing space always available, so reading
> single word past any allocated object is not hurts..
> But not in case, when bitmap residing in external heap.. because reading
> beyond allocated space might cause segmentation fault.. and it was, until i
> figured what was causing it and where the bug is.
>
>
The workaround, that i introduced was simply to tell Cairo to allocate
surface 1 row taller and then use smaller height in bitblt operations, so
it can never use the last row..
that, of course, going in conflict of using cairo for a patterns to fill
things with bitmaps, which relying on surface's dimensions and using all
its pixels..
:(

hmm..

>
>
>> Prefered test setup:
>> a (fresh) pharo image
>> load bleeding edge from Bloc (because with bloc the whole (morphic) world
>> is drawn with athens).
>> change to watery theme ( because it makes some heavy use of form fills)
>> verify that vertical scrollbars have this artifact (blank lines).
>> load the attached code (this code reverts igors change for the 1 pixel
>> extra height.
>>
>> please report back
>> what platform windows/linux/mac 32/64 bit
>> what pharo vm and image version.
>>
>> For me
>> Windows 7  32 bit
>> Win32 built on Apr  9 2015 21:05:04 Compiler: 4.6.2
>> Latest update: #50039
>>
>> -> no segfault
>>
>> thanks in advance
>>
>>
>> 2015-03-13 21:22 GMT+01:00 stepharo <[email protected]>:
>>
>>>  I do not know. May be igor is reading this mailing-list but I doubt.
>>>
>>>
>>> 2015-01-27 21:46 GMT+01:00 Nicolai Hess <[email protected]>:
>>>
>>>   Anyone knows what this BitBlt bug is or was?
>>>>  12818 <https://pharo.fogbugz.com/default.asp?12818> Last row missing
>>>>  13236 <https://pharo.fogbugz.com/default.asp?13236> Fix 1 extra
>>>> height for Cairo surface
>>>>
>>>>  Because with the fix in 13236, it is not (easily) possible to make
>>>> a repeating (vertical) pattern paint with 1 pixel height:
>>>>  14813 <https://pharo.fogbugz.com/default.asp?14813> Wrong size for
>>>> Athens surface pattern paint from a Form
>>>>
>>>>
>>>>  nicolai
>>>>
>>>>
>>>>
>>>  BUMP
>>>
>>>
>>>
>>>
>>>
>>>
>>
>
>
> --
> Best regards,
> Igor Stasenko.
>



-- 
Best regards,
Igor Stasenko.

Reply via email to