diff options
author | Vasiliy Ulyanov <v.ulyanov@samsung.com> | 2016-02-01 11:20:17 +0300 |
---|---|---|
committer | Vasiliy Ulyanov <v.ulyanov@samsung.com> | 2016-02-01 11:20:17 +0300 |
commit | 1f93bb9b68e1d5e2a047ff5f7351470c24ff7a22 (patch) | |
tree | 7d71fb447b5a6bbb5dfbc91b70686e4301fe9d6e | |
parent | 449ffd4c96360cf44e2e83b8da9d210bb046fb87 (diff) | |
download | emulator-yagl-1f93bb9b68e1d5e2a047ff5f7351470c24ff7a22.tar.gz emulator-yagl-1f93bb9b68e1d5e2a047ff5f7351470c24ff7a22.tar.bz2 emulator-yagl-1f93bb9b68e1d5e2a047ff5f7351470c24ff7a22.zip |
YaGL: Fix Prevent issuessubmit/tizen_wearable/20160304.133021submit/tizen/20160303.131907accepted/tizen/wearable/20160307.020711accepted/tizen/wearable/20160304.015410accepted/tizen/tv/20160304.015357accepted/tizen/mobile/20160304.015338accepted/tizen/ivi/20160304.015431accepted/tizen/common/20160304.195047
Change-Id: I781453b800d376a16294921984e2cb2b36f1411b
Signed-off-by: Vasiliy Ulyanov <v.ulyanov@samsung.com>
-rw-r--r-- | EGL/x11/yagl_dri3.c | 6 | ||||
-rw-r--r-- | EGL/yagl_egl_state.c | 6 | ||||
-rw-r--r-- | EGL/yagl_onscreen_surface.c | 14 | ||||
-rw-r--r-- | EGL/yagl_state.c | 11 | ||||
-rw-r--r-- | GLES_common/yagl_gles_calls.c | 9 | ||||
-rw-r--r-- | GLESv2/yagl_glsl_parser.y | 4 | ||||
-rw-r--r-- | GLESv2/yagl_texcompress_etc2.c | 6 |
7 files changed, 30 insertions, 26 deletions
diff --git a/EGL/x11/yagl_dri3.c b/EGL/x11/yagl_dri3.c index a3c1c4a..1be8581 100644 --- a/EGL/x11/yagl_dri3.c +++ b/EGL/x11/yagl_dri3.c @@ -684,7 +684,7 @@ err_import: close(fds[0]); err_get_fd: - /* nothing to do here */ + xshmfence_unmap_shm(shm_fence); err_map_shm: close(fence_fd); @@ -883,13 +883,13 @@ static int yagl_dri3_drawable_get_buffer_age(struct yagl_native_drawable *drawab xcb_connection_t *c = XGetXCBConnection(x_dpy); struct yagl_dri3_drawable *dri3_drawable = (struct yagl_dri3_drawable *)drawable; int back_id = DRI3_BACK_ID(yagl_dri3_find_back(c, dri3_drawable)); - struct yagl_dri3_buffer *back = dri3_drawable->buffers[back_id]; + struct yagl_dri3_buffer *back = back_id < 0 ? NULL : dri3_drawable->buffers[back_id]; YAGL_LOG_FUNC_SET(yagl_dri3_drawable_get_buffer_age); YAGL_LOG_DEBUG("enter"); - if (back_id < 0 || !back) { + if (!back) { return 0; } diff --git a/EGL/yagl_egl_state.c b/EGL/yagl_egl_state.c index 096dca9..5baba61 100644 --- a/EGL/yagl_egl_state.c +++ b/EGL/yagl_egl_state.c @@ -73,7 +73,10 @@ void *yagl_get_gles1_sym(const char *name) } if (handle) { - return dlsym(handle, name); + sym = dlsym(handle, name); + dlclose(handle); + + return sym; } return NULL; @@ -91,6 +94,7 @@ void *yagl_get_gles2_sym(const char *name) if (handle) { sym = dlsym(handle, name); + dlclose(handle); } if (!sym) { diff --git a/EGL/yagl_onscreen_surface.c b/EGL/yagl_onscreen_surface.c index 99ac148..8d65606 100644 --- a/EGL/yagl_onscreen_surface.c +++ b/EGL/yagl_onscreen_surface.c @@ -486,16 +486,14 @@ struct yagl_onscreen_surface return sfc; fail: - if (sfc) { - if (sfc->tmp_pixmap) { - if (drm_sfc) { - vigs_drm_gem_unref(&drm_sfc->gem); - } - sfc->tmp_pixmap->destroy(sfc->tmp_pixmap); - sfc->tmp_pixmap = NULL; + if (sfc->tmp_pixmap) { + if (drm_sfc) { + vigs_drm_gem_unref(&drm_sfc->gem); } - yagl_free(sfc); + sfc->tmp_pixmap->destroy(sfc->tmp_pixmap); + sfc->tmp_pixmap = NULL; } + yagl_free(sfc); return NULL; } diff --git a/EGL/yagl_state.c b/EGL/yagl_state.c index b81e233..b80dd18 100644 --- a/EGL/yagl_state.c +++ b/EGL/yagl_state.c @@ -107,7 +107,7 @@ static void *yagl_state_transport_resize(void *ops_data, uint32_t size) PROT_READ|PROT_WRITE, MAP_SHARED, state->fd, - sysconf(_SC_PAGE_SIZE)); + (size_t)sysconf(_SC_PAGE_SIZE)); if (buff == MAP_FAILED) { fprintf(stderr, "Unable to resize YaGL buffer to %u: %s!\n", @@ -207,7 +207,7 @@ static void yagl_state_free(void *ptr) yagl_transport_destroy(state->t); munmap(state->buff, state->buff_size); - munmap(state->regs, sysconf(_SC_PAGE_SIZE)); + munmap(state->regs, (size_t)sysconf(_SC_PAGE_SIZE)); close(state->fd); @@ -255,7 +255,7 @@ static void yagl_state_atfork() yagl_display_atfork(); munmap(state->buff, state->buff_size); - munmap(state->regs, sysconf(_SC_PAGE_SIZE)); + munmap(state->regs, (size_t)sysconf(_SC_PAGE_SIZE)); close(state->fd); @@ -321,8 +321,7 @@ static struct yagl_state *yagl_get_state() exit(1); } - if ((user_info.index < 0) || - (user_info.index >= (sysconf(_SC_PAGE_SIZE) / YAGL_REGS_SIZE))) { + if ((user_info.index >= (sysconf(_SC_PAGE_SIZE) / YAGL_REGS_SIZE))) { fprintf(stderr, "Critical error! Bad user index: %d!\n", user_info.index); exit(1); @@ -353,7 +352,7 @@ static struct yagl_state *yagl_get_state() } state->regs = mmap(NULL, - sysconf(_SC_PAGE_SIZE), + (size_t)sysconf(_SC_PAGE_SIZE), PROT_READ|PROT_WRITE, MAP_SHARED, state->fd, diff --git a/GLES_common/yagl_gles_calls.c b/GLES_common/yagl_gles_calls.c index 4c64e8a..c79c2c1 100644 --- a/GLES_common/yagl_gles_calls.c +++ b/GLES_common/yagl_gles_calls.c @@ -2646,10 +2646,13 @@ YAGL_API void glGenVertexArrays(GLsizei n, GLuint *array_names) } out: - for (i = 0; i < n; ++i) { - yagl_gles_vertex_array_release(arrays[i]); + if (arrays) { + for (i = 0; i < n; ++i) { + yagl_gles_vertex_array_release(arrays[i]); + } + + yagl_free(arrays); } - yagl_free(arrays); YAGL_LOG_FUNC_EXIT(NULL); } diff --git a/GLESv2/yagl_glsl_parser.y b/GLESv2/yagl_glsl_parser.y index 500d455..9f71e0f 100644 --- a/GLESv2/yagl_glsl_parser.y +++ b/GLESv2/yagl_glsl_parser.y @@ -115,7 +115,7 @@ version break; } - sprintf(s, "%d", version); + snprintf(s, 100, "%d", version); yagl_glsl_state_append_output(state, s); yagl_glsl_state_flush_pending(state, $3.index); if (state->patch_version == yagl_glsl_asis) { @@ -153,7 +153,7 @@ version break; } - sprintf(s, "%d", version); + snprintf(s, 100, "%d", version); yagl_glsl_state_append_output(state, s); yagl_glsl_state_flush_pending(state, $3.index); yagl_glsl_state_append_output(state, $3.value); diff --git a/GLESv2/yagl_texcompress_etc2.c b/GLESv2/yagl_texcompress_etc2.c index 02e9959..fdfb09e 100644 --- a/GLESv2/yagl_texcompress_etc2.c +++ b/GLESv2/yagl_texcompress_etc2.c @@ -408,7 +408,7 @@ etc2_rgb8_parse_block(struct etc2_block *block, block->flipped = (src[3] & 0x1); } - block->pixel_indices[0] = + block->pixel_indices[0] = (unsigned) (src[4] << 24) | (src[5] << 16) | (src[6] << 8) | src[7]; } @@ -905,7 +905,7 @@ void yagl_texcompress_etc2_unpack_srgb8_punchthrough_alpha1(uint8_t *dst_row, tmp = dst[0]; dst[0] = dst[2]; dst[2] = tmp; - dst[3] = dst[3]; + /* dst[3] = dst[3]; */ dst += comps; } @@ -984,7 +984,7 @@ void yagl_texcompress_etc2_unpack_srgb8_alpha8(uint8_t *dst_row, tmp = dst[0]; dst[0] = dst[2]; dst[2] = tmp; - dst[3] = dst[3]; + /* dst[3] = dst[3]; */ dst += comps; } |