From 1570fa75b902e47168dbde934ee7ec2ab6db80fc Mon Sep 17 00:00:00 2001 From: jp9000 Date: Fri, 14 Feb 2014 18:23:21 -0700 Subject: [PATCH] Fix variable placement, not safe with goto usage --- libobs-opengl/gl-stagesurf.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libobs-opengl/gl-stagesurf.c b/libobs-opengl/gl-stagesurf.c index 4b6b675ce..184217ccc 100644 --- a/libobs-opengl/gl-stagesurf.c +++ b/libobs-opengl/gl-stagesurf.c @@ -113,17 +113,18 @@ static bool can_stage(struct gs_stage_surface *dst, struct gs_texture_2d *src) void device_stage_texture(device_t device, stagesurf_t dst, texture_t src) { struct gs_texture_2d *tex2d = (struct gs_texture_2d*)src; - if (!can_stage(dst, tex2d)) - goto failed; - - struct fbo_info *fbo = get_fbo(device, dst->width, dst->height, - dst->format); + struct fbo_info *fbo; GLint last_fbo; bool success = false; + if (!can_stage(dst, tex2d)) + goto failed; + if (!gl_bind_buffer(GL_PIXEL_PACK_BUFFER, dst->pack_buffer)) goto failed; + fbo = get_fbo(device, dst->width, dst->height, dst->format); + if (!gl_get_integer_v(GL_READ_FRAMEBUFFER_BINDING, &last_fbo)) goto failed_unbind_buffer; if (!gl_bind_framebuffer(GL_READ_FRAMEBUFFER, fbo->fbo))