Change the sequence between moving a struct and accessing a field inside the struct.

Accessing to a field of size_t in a move()d struct works but not so
reasonable because fields of a move()d object is considered as invalid.

Test: buffer_hub_queue-test still pass
Bug: None
Change-Id: I799ba61e6535c021b9061fa299167cba0c630cde
diff --git a/libs/vr/libbufferhubqueue/buffer_hub_queue_client.cpp b/libs/vr/libbufferhubqueue/buffer_hub_queue_client.cpp
index b8e2f9d..f7942d0 100644
--- a/libs/vr/libbufferhubqueue/buffer_hub_queue_client.cpp
+++ b/libs/vr/libbufferhubqueue/buffer_hub_queue_client.cpp
@@ -337,8 +337,6 @@
 
 Status<void> BufferHubQueue::Enqueue(Entry entry) {
   if (!is_full()) {
-    available_buffers_.push(std::move(entry));
-
     // Find and remove the enqueued buffer from unavailable_buffers_slot if
     // exist.
     auto enqueued_buffer_iter = std::find_if(
@@ -348,6 +346,8 @@
       unavailable_buffers_slot_.erase(enqueued_buffer_iter);
     }
 
+    available_buffers_.push(std::move(entry));
+
     // Trigger OnBufferAvailable callback if registered.
     if (on_buffer_available_)
       on_buffer_available_();