Changeset 147897 in webkit


Ignore:
Timestamp:
Apr 8, 2013 12:25:12 AM (11 years ago)
Author:
ryuan.choi@samsung.com
Message:

[EFL] rendering was broken when scrolled ewk_view_single
https://bugs.webkit.org/show_bug.cgi?id=114135

Patch by Ryuan Choi <ryuan.choi@samsung.com> on 2013-04-08
Reviewed by Gyuyoung Kim.

ewk_view_single use memcpy() to copy previous buffer for scrolling, but
memcpy() should not be used when source buffer and destination buffer are
overwrapped.

  • ewk/ewk_view_single.cpp:

(_ewk_view_screen_move):

Location:
trunk/Source/WebKit/efl
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/efl/ChangeLog

    r147885 r147897  
     12013-04-08  Ryuan Choi  <ryuan.choi@samsung.com>
     2
     3        [EFL] rendering was broken when scrolled ewk_view_single
     4        https://bugs.webkit.org/show_bug.cgi?id=114135
     5
     6        Reviewed by Gyuyoung Kim.
     7
     8        ewk_view_single use memcpy() to copy previous buffer for scrolling, but
     9        memcpy() should not be used when source buffer and destination buffer are
     10        overwrapped.
     11
     12        * ewk/ewk_view_single.cpp:
     13        (_ewk_view_screen_move):
     14
    1152013-04-07  Ed Bartosh  <bartosh@gmail.com>
    216
  • trunk/Source/WebKit/efl/ewk/ewk_view_single.cpp

    r136108 r147897  
    112112
    113113    uint32_t* source, * destination;
    114     if (sourceX >= destinationX) {
     114    if ((destinationX > sourceX && destinationX < sourceX + copyWidth)
     115        || (destinationX < sourceX && destinationX + copyWidth > sourceX)) {
    115116        for (size_t i = 0; i < copyHeight; i++) {
    116117            source = sourceBegin + (imageWidth * startHeight);
    117118            destination = destinationBegin + (imageWidth * startHeight);
    118119            startHeight = startHeight + moveLineUpDown;
    119             memcpy(destination, source, copyLength);
     120            memmove(destination, source, copyLength);
    120121        }
    121122    } else {
     
    124125            destination = destinationBegin + (imageWidth * startHeight);
    125126            startHeight = startHeight + moveLineUpDown;
    126             memmove(destination, source, copyLength);
     127            memcpy(destination, source, copyLength);
    127128        }
    128129    }
Note: See TracChangeset for help on using the changeset viewer.