summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVasiliy Ulyanov <v.ulyanov@samsung.com>2016-02-01 11:20:17 +0300
committerVasiliy Ulyanov <v.ulyanov@samsung.com>2016-02-01 11:20:17 +0300
commit1f93bb9b68e1d5e2a047ff5f7351470c24ff7a22 (patch)
tree7d71fb447b5a6bbb5dfbc91b70686e4301fe9d6e
parent449ffd4c96360cf44e2e83b8da9d210bb046fb87 (diff)
downloademulator-yagl-1f93bb9b68e1d5e2a047ff5f7351470c24ff7a22.tar.gz
emulator-yagl-1f93bb9b68e1d5e2a047ff5f7351470c24ff7a22.tar.bz2
emulator-yagl-1f93bb9b68e1d5e2a047ff5f7351470c24ff7a22.zip
Change-Id: I781453b800d376a16294921984e2cb2b36f1411b Signed-off-by: Vasiliy Ulyanov <v.ulyanov@samsung.com>
-rw-r--r--EGL/x11/yagl_dri3.c6
-rw-r--r--EGL/yagl_egl_state.c6
-rw-r--r--EGL/yagl_onscreen_surface.c14
-rw-r--r--EGL/yagl_state.c11
-rw-r--r--GLES_common/yagl_gles_calls.c9
-rw-r--r--GLESv2/yagl_glsl_parser.y4
-rw-r--r--GLESv2/yagl_texcompress_etc2.c6
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;
}