Move the setjmp into a function by itself Move the setjmp present in the function 'row_mt_worker_hook' into a function by itself. This would prevent the build warning : variable might be clobbered by ‘longjmp’ or ‘vfork’. Change-Id: I3599d057a25abc978e0b568ac3074a27554216cb
diff --git a/av1/decoder/decodeframe.c b/av1/decoder/decodeframe.c index 73f7049..973cc4c 100644 --- a/av1/decoder/decodeframe.c +++ b/av1/decoder/decodeframe.c
@@ -3047,6 +3047,16 @@ #endif } +static int call_setjmp(DecWorkerData *const thread_data) { + if (setjmp(thread_data->error_info.jmp)) { + thread_data->error_info.setjmp = 0; + thread_data->td->xd.corrupted = 1; + return 0; + } + thread_data->error_info.setjmp = 1; + return 1; +} + static int tile_worker_hook(void *arg1, void *arg2) { DecWorkerData *const thread_data = (DecWorkerData *)arg1; AV1Decoder *const pbi = (AV1Decoder *)arg2; @@ -3054,12 +3064,9 @@ ThreadData *const td = thread_data->td; uint8_t allow_update_cdf; - if (setjmp(thread_data->error_info.jmp)) { - thread_data->error_info.setjmp = 0; - thread_data->td->xd.corrupted = 1; + if (!call_setjmp(thread_data)) { return 0; } - thread_data->error_info.setjmp = 1; allow_update_cdf = cm->large_scale_tile ? 0 : 1; allow_update_cdf = allow_update_cdf && !cm->disable_cdf_update; @@ -3094,12 +3101,9 @@ ThreadData *const td = thread_data->td; uint8_t allow_update_cdf; - if (setjmp(thread_data->error_info.jmp)) { - thread_data->error_info.setjmp = 0; - thread_data->td->xd.corrupted = 1; + if (!call_setjmp(thread_data)) { return 0; } - thread_data->error_info.setjmp = 1; const int num_planes = av1_num_planes(cm); allow_update_cdf = cm->large_scale_tile ? 0 : 1;