Changeset 92808 in webkit


Ignore:
Timestamp:
Aug 10, 2011, 5:54:42 PM (14 years ago)
Author:
commit-queue@webkit.org
Message:

[EFL] Return from _ewk_view_smart_add if smart data can not be allocated
https://bugs.webkit.org/show_bug.cgi?id=65853

Patch by Grzegorz Czajkowski <g.czajkowski@samsung.com> on 2011-08-10
Reviewed by Kenneth Rohde Christiansen.

It prevents the crash while allocating a memory for view's smart data.
Others checking are needed for support single and tiled backing store.
As a result an empty window will be displayed.

  • ewk/ewk_view.cpp:

(_ewk_view_smart_add):
(_ewk_view_smart_resize):
(_ewk_view_smart_move):
(_ewk_view_smart_show):
(_ewk_view_smart_hide):

  • ewk/ewk_view_single.c:

(_ewk_view_single_smart_add):
(_ewk_view_single_smart_resize):

  • ewk/ewk_view_tiled.c:

(_ewk_view_tiled_smart_add):

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

Legend:

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

    r92763 r92808  
     12011-08-10  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
     2
     3        [EFL] Return from _ewk_view_smart_add if smart data can not be allocated
     4        https://bugs.webkit.org/show_bug.cgi?id=65853
     5
     6        Reviewed by Kenneth Rohde Christiansen.
     7
     8        It prevents the crash while allocating a memory for view's smart data.
     9        Others checking are needed for support single and tiled backing store.
     10        As a result an empty window will be displayed.
     11
     12        * ewk/ewk_view.cpp:
     13        (_ewk_view_smart_add):
     14        (_ewk_view_smart_resize):
     15        (_ewk_view_smart_move):
     16        (_ewk_view_smart_show):
     17        (_ewk_view_smart_hide):
     18        * ewk/ewk_view_single.c:
     19        (_ewk_view_single_smart_add):
     20        (_ewk_view_single_smart_resize):
     21        * ewk/ewk_view_tiled.c:
     22        (_ewk_view_tiled_smart_add):
     23
    1242011-08-10  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
    225
  • trunk/Source/WebKit/efl/ewk/ewk_view.cpp

    r92763 r92808  
    708708    if (!sd) {
    709709        sd = (Ewk_View_Smart_Data *)calloc(1, sizeof(Ewk_View_Smart_Data));
    710         if (!sd)
     710        if (!sd) {
    711711            CRITICAL("could not allocate Ewk_View_Smart_Data");
    712         else
    713             evas_object_smart_data_set(o, sd);
     712            return;
     713        }
     714        evas_object_smart_data_set(o, sd);
    714715    }
    715716
     
    789790static void _ewk_view_smart_resize(Evas_Object *o, Evas_Coord w, Evas_Coord h)
    790791{
    791     EWK_VIEW_SD_GET(o, sd);
     792    EWK_VIEW_SD_GET_OR_RETURN(o, sd);
    792793
    793794    // these should be queued and processed in calculate as well!
     
    800801static void _ewk_view_smart_move(Evas_Object *o, Evas_Coord x, Evas_Coord y)
    801802{
    802     EWK_VIEW_SD_GET(o, sd);
     803    EWK_VIEW_SD_GET_OR_RETURN(o, sd);
    803804    sd->changed.position = EINA_TRUE;
    804805    _ewk_view_smart_changed(sd);
     
    871872static void _ewk_view_smart_show(Evas_Object *o)
    872873{
    873     EWK_VIEW_SD_GET(o, sd);
     874    EWK_VIEW_SD_GET_OR_RETURN(o, sd);
    874875
    875876    if (evas_object_clipees_get(sd->base.clipper))
     
    880881static void _ewk_view_smart_hide(Evas_Object *o)
    881882{
    882     EWK_VIEW_SD_GET(o, sd);
     883    EWK_VIEW_SD_GET_OR_RETURN(o, sd);
    883884
    884885    evas_object_hide(sd->base.clipper);
  • trunk/Source/WebKit/efl/ewk/ewk_view_single.c

    r92190 r92808  
    4444
    4545    sd = (Ewk_View_Smart_Data *)evas_object_smart_data_get(o);
     46    if (!sd)
     47        return;
    4648
    4749    Evas_Object *clip = evas_object_rectangle_add(sd->base.evas);
     
    6769    Ewk_View_Smart_Data *sd = (Ewk_View_Smart_Data*)evas_object_smart_data_get(o);
    6870    _parent_sc.sc.resize(o, w, h);
     71
     72    if (!sd)
     73        return;
    6974
    7075    // these should be queued and processed in calculate as well!
  • trunk/Source/WebKit/efl/ewk/ewk_view_tiled.c

    r91981 r92808  
    7272
    7373    sd = (Ewk_View_Smart_Data*)evas_object_smart_data_get(o);
     74    if (!sd)
     75        return;
     76
    7477    evas_object_smart_callback_add(
    7578        sd->main_frame, "contents,size,changed",
Note: See TracChangeset for help on using the changeset viewer.