[Add error handling for cairo_gl_device_set_thread_aware() API] 41/60741/1 accepted/tizen/common/20160302.193548 submit/tizen/20160302.044709 submit/tizen/20160302.044849
authorhk57.kim <hk57.kim@samsung.com>
Wed, 2 Mar 2016 04:23:27 +0000 (13:23 +0900)
committerhk57.kim <hk57.kim@samsung.com>
Wed, 2 Mar 2016 04:23:27 +0000 (13:23 +0900)
Change-Id: Ie948efb70a0ac1b2db49bf7f4babc61b149be1f0
Signed-off-by: hk57.kim <hk57.kim@samsung.com>
src/cairo-gl-device.c

index 7069c83..5dce9fb 100644 (file)
@@ -1100,11 +1100,24 @@ void
 cairo_gl_device_set_thread_aware (cairo_device_t       *device,
                                  cairo_bool_t           thread_aware)
 {
+    if ((! device)||(cairo_device_status(device)!= CAIRO_STATUS_SUCCESS)) {
+       fprintf (stderr, "cairo_gl_device_set_thread_aware(): cairo_device is NULL or not available\n");
+       _cairo_error_throw (CAIRO_STATUS_DEVICE_ERROR);
+       return;
+    }
     if (device->backend->type != CAIRO_DEVICE_TYPE_GL) {
        _cairo_error_throw (CAIRO_STATUS_DEVICE_TYPE_MISMATCH);
        return;
     }
-    ((cairo_gl_context_t *) device)->thread_aware = thread_aware;
+    if(thread_aware == 0 || thread_aware == 1)
+    {
+       ((cairo_gl_context_t *) device)->thread_aware = thread_aware;
+    }
+    else
+    {
+       _cairo_device_set_error (device, CAIRO_STATUS_INVALID_STATUS);
+       return;
+    }
 }
 
 void _cairo_gl_context_reset (cairo_gl_context_t *ctx)