diff options
author | Jean-Philippe Andre <jp.andre@samsung.com> | 2015-12-10 15:48:15 +0900 |
---|---|---|
committer | Cedric BAIL <cedric@osg.samsung.com> | 2016-01-04 01:12:19 +0100 |
commit | f7bebd54117c3f99f6300ca7e29e374a004feb19 (patch) | |
tree | 88350c7286d218168457e6d77f49e27e48d6b187 | |
parent | c392f3deeeff25150cc0e6c28442749247d8c5c4 (diff) | |
download | efl-f7bebd54117c3f99f6300ca7e29e374a004feb19.tar.gz |
ector: refuse write map if buffer is not writable
-rw-r--r-- | src/lib/ector/software/ector_software_buffer.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/ector/software/ector_software_buffer.c b/src/lib/ector/software/ector_software_buffer.c index cd9991f4f5..26c1329cda 100644 --- a/src/lib/ector/software/ector_software_buffer.c +++ b/src/lib/ector/software/ector_software_buffer.c @@ -134,7 +134,7 @@ _ector_software_buffer_base_ector_generic_buffer_pixels_set(Eo *obj, Ector_Softw EOLIAN static void * _ector_software_buffer_base_ector_generic_buffer_map(Eo *obj EINA_UNUSED, Ector_Software_Buffer_Base_Data *pd, - unsigned int *length, Ector_Buffer_Access_Flag mode EINA_UNUSED, + unsigned int *length, Ector_Buffer_Access_Flag mode, unsigned int x, unsigned int y, unsigned int w, unsigned int h, Efl_Gfx_Colorspace cspace EINA_UNUSED, unsigned int *stride) { @@ -147,6 +147,8 @@ _ector_software_buffer_base_ector_generic_buffer_map(Eo *obj EINA_UNUSED, Ector_ if (!w || !h || ((x + w) > pd->generic->w) || (y + h > pd->generic->h)) fail("Invalid region requested: wanted %u,%u %ux%u but image is %ux%u", x, y, w, h, pd->generic->w, pd->generic->h); + if ((mode & ECTOR_BUFFER_ACCESS_FLAG_WRITE) && !pd->writable) + fail("can not map a read-only buffer for writing"); pd->map_count++; off = _min_stride_calc(x + pd->generic->l, pd->generic->cspace) + (pd->stride * (y + pd->generic->t)); |