view: check if null before accessing 'view->surface'. 65/68865/1
authorSeunghun Lee <shiin.lee@samsung.com>
Tue, 10 May 2016 06:37:45 +0000 (15:37 +0900)
committerSeunghun Lee <shiin.lee@samsung.com>
Tue, 10 May 2016 06:56:59 +0000 (15:56 +0900)
Change-Id: If05db77c89cdd12fa8e8414bfa502490f8b373e4

src/lib/pepper/output.c
src/lib/pepper/view.c

index 2657aa4dca419d84dfbd61e3d76e1d8b8922ffb3..1bb6c17afc308aed4e4514a15d72c6c0468f6aa6 100644 (file)
@@ -161,6 +161,7 @@ output_repaint(pepper_output_t *output)
 
        pepper_list_for_each(view, &output->view_list, link) {
                /* TODO: Output time stamp and presentation feedback. */
+               PEPPER_CHECK(view->surface, continue, "view->surface is null");
                pepper_surface_send_frame_callback_done(view->surface,
                                                                                                output->frame.time.tv_sec * 1000 +
                                                                                                output->frame.time.tv_nsec / 1000000);
index 9f30d8661970935acf27723d8f0ba13cd6bc3313..7727ed76956320442cdce21edc025cdf074e375c 100644 (file)
@@ -224,24 +224,26 @@ pepper_view_update(pepper_view_t *view)
                output_overlap_prev = view->output_overlap;
                view->output_overlap = 0;
 
-               pepper_list_for_each(output, &view->compositor->output_list, link) {
-                       pixman_box32_t   box = {
-                               output->geometry.x,
-                               output->geometry.y,
-                               output->geometry.x + output->geometry.w,
-                               output->geometry.y + output->geometry.h
-                       };
-
-                       if (pixman_region32_contains_rectangle(&view->bounding_region,
-                                                                                                  &box) != PIXMAN_REGION_OUT) {
-                               view->output_overlap |= (1 << output->id);
-                               if (!(output_overlap_prev & (1 << output->id)))
-                                       pepper_surface_send_enter(view->surface, output);
-                       } else {
-                               if (view->surface && (output_overlap_prev & (1 << output->id)))
-                                       pepper_surface_send_leave(view->surface, output);
+                if (view->surface) {
+                       pepper_list_for_each(output, &view->compositor->output_list, link) {
+                               pixman_box32_t   box = {
+                                       output->geometry.x,
+                                       output->geometry.y,
+                                       output->geometry.x + output->geometry.w,
+                                       output->geometry.y + output->geometry.h
+                               };
+
+                               if (pixman_region32_contains_rectangle(&view->bounding_region,
+                                                                                                          &box) != PIXMAN_REGION_OUT) {
+                                       view->output_overlap |= (1 << output->id);
+                                       if (!(output_overlap_prev & (1 << output->id)))
+                                               pepper_surface_send_enter(view->surface, output);
+                               } else {
+                                       if (view->surface && (output_overlap_prev & (1 << output->id)))
+                                               pepper_surface_send_leave(view->surface, output);
+                               }
                        }
-               }
+                }
        }
 
        /* Mark the plane entries as damaged. */