X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Ftdm_output.c;h=66ad21bcf132a809ebcbdd5649ef4e527752e8d1;hb=729ebaadb2cf64309af3064245486f7f5dfeba8b;hp=0185615a0e351e2ff6b1bac87275bd0ac56ed0ec;hpb=ca91f10db2ce407718e436839fdf9501197edd15;p=platform%2Fcore%2Fuifw%2Flibtdm.git diff --git a/src/tdm_output.c b/src/tdm_output.c index 0185615..66ad21b 100644 --- a/src/tdm_output.c +++ b/src/tdm_output.c @@ -1220,12 +1220,14 @@ _tdm_output_commit_virtual(tdm_output *output, int sync, tdm_output_commit_handl tdm_private_output *private_output; tdm_private_output_commit_handler *output_commit_handler = NULL; tdm_private_layer *private_layer = NULL; + tdm_private_display *private_display; tbm_surface_h buffer; tdm_error ret = TDM_ERROR_NONE; TDM_RETURN_VAL_IF_FAIL(output != NULL, TDM_ERROR_INVALID_PARAMETER); private_output = (tdm_private_output*)output; + private_display = private_output->private_display; if (!LIST_IS_EMPTY(&private_output->output_commit_handler_list)) { /* support only 1 commit */ @@ -1252,14 +1254,16 @@ _tdm_output_commit_virtual(tdm_output *output, int sync, tdm_output_commit_handl if (private_layer) break; } TDM_GOTO_IF_FAIL(private_layer, commit_failed); - TDM_GOTO_IF_FAIL(private_layer->committed_buffer, commit_failed); - buffer = private_layer->committed_buffer->buffer; + buffer = private_layer->commiting_buffer; + TDM_GOTO_IF_FAIL(buffer != NULL, commit_failed); + _pthread_mutex_unlock(&private_display->lock); ret = tdm_output_send_buffer(private_output, buffer); TDM_GOTO_IF_FAIL(ret == TDM_ERROR_NONE, commit_failed); ret = tdm_output_commit_buffer(private_output); TDM_GOTO_IF_FAIL(ret == TDM_ERROR_NONE, commit_failed); + _pthread_mutex_lock(&private_display->lock); return ret; @@ -1890,6 +1894,8 @@ tdm_output_commit_done(tdm_output *output, tbm_surface_h buffer) if (private_layer) break; } + private_layer->commiting_buffer = NULL; + LIST_FOR_EACH_ENTRY(output_commit_handler, &private_output->output_commit_handler_list, link) { if (output_commit_handler) break; }