char buff[PATH_MAX];
inst = E_NEW(Instance, 1);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(inst, NULL);
snprintf(buff, sizeof(buff), "%s/e-module-wl_screenshot.edj", _mod->dir);
edje_object_file_set(o, buff, "modules/wl_screenshot/main");
gcc = e_gadcon_client_new(gc, name, id, style, o);
+ if (!gcc)
+ {
+ evas_object_del(o);
+ E_FREE(inst);
+ return NULL;
+ }
+
gcc->data = inst;
inst->gcc = gcc;
pool = wl_shm_create_pool(_shm, fd, size);
close(fd);
+ if (!pool)
+ return NULL;
buffer =
wl_shm_pool_create_buffer(pool, 0, width, height, stride,
/* FIXME: ow and oh should probably be the size of all outputs */
buffer = _create_shm_buffer(ecore_wl_shm_get(), ow, oh, &d);
+ if (!buffer) return EINA_FALSE;
+
screenshooter_shoot(_shooter, _output, buffer);
ecore_wl_sync();
_save_png(ow, oh, d);
+ wl_buffer_destroy(buffer);
+
return EINA_FALSE;
}