Bug 887466 - Rearrange SyncDecode so that we never try to finish a size decode with the decode lock held. r=seth