Move destruction of GLES2Decoder to end of Context::DestroyService to avoid order issue

Bug: 922061
Change-Id: Ic2359837cb0502cbfbf2e8a6d918e2ce288afb35
Reviewed-on: https://chromium-review.googlesource.com/c/1414760
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Cr-Commit-Position: refs/heads/master@{#623310}
diff --git a/gpu/gles2_conform_support/egl/context.cc b/gpu/gles2_conform_support/egl/context.cc
index f5352c0..06f61d4 100644
--- a/gpu/gles2_conform_support/egl/context.cc
+++ b/gpu/gles2_conform_support/egl/context.cc
@@ -354,11 +354,11 @@
   gl_context_ = nullptr;
 
   transfer_buffer_.reset();
+  gles2_cmd_helper_.reset();
+  command_buffer_.reset();
   if (decoder_)
     decoder_->Destroy(have_context);
   decoder_.reset();
-  gles2_cmd_helper_.reset();
-  command_buffer_.reset();
 }
 
 bool Context::HasService() const {