discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=a49cede7905bf2fac6aba29ffe5686fad27ce211

commit a49cede7905bf2fac6aba29ffe5686fad27ce211
Author: Gwanglim Lee <gl77....@samsung.com>
Date:   Mon Jun 2 07:16:41 2014 -0400

    add class type check where client layer marker is taken
    
    Summary:
    it fixes crash when running wl client apps on e wayland server.
    invalid comp object pointer value is returned by using eo_data_scope_get.
    thus eo_isa should be added before eo_data_scope_get.
    
    Test Plan:
    1. run e wl server
    2. run wl client terminlogy
    3. run second wl client elementary_test
    
    Reviewers: raster, devilhorns, zmike, stefan_schmidt
    
    CC: cedric
    
    Differential Revision: https://phab.enlightenment.org/D919
---
 src/bin/e_comp_object.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 018241a..b2922fe 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -166,7 +166,10 @@ _e_comp_object_layers_add(E_Comp_Object *cw, E_Comp_Object 
*above, E_Comp_Object
     * will return NULL for fake layers (eg. wayland)
     */
    if (cw->comp->layers[cw->layer].obj)
-     layer_cw = eo_data_scope_get(cw->comp->layers[cw->layer].obj, MY_CLASS);
+     {
+        if (eo_isa(cw->comp->layers[cw->layer].obj, MY_CLASS))
+          layer_cw = eo_data_scope_get(cw->comp->layers[cw->layer].obj, 
MY_CLASS);
+     }
    if (layer_cw == cw) layer_cw = NULL;
 /*
    if (above)

-- 


Reply via email to